草庐IT

http-put

全部标签

http - Golang,零指针取消引用或无效内存地址

我的代码运行完美,直到我想使用许多并发调用来扩展它。它通过向客户端询问Get请求来工作。这是我得到的:panic:runtimeerror:invalidmemoryaddressornilpointerdereference[signal0xbcode=0x1addr=0x0pc=0x400da9]goroutine125[running]:runtime.panic(0x697480,0x850d13)/usr/lib/go/src/pkg/runtime/panic.c:279+0xf5main.concurrent(0x25e5)/home/maker/go/src/GoBot

golang代码组织: where should I put custom error types that are only relevant to one function?

我刚刚开始处理我的第一个golang项目,非常喜欢从函数返回自定义错误类型并在调用代码中使用类型断言来检查特定错误的想法。我发现这个解决方案比总是比较错误消息更清晰。我唯一的问题是:您最好将这些自定义错误类型放在哪里?假设许多自定义错误类型仅由一个实用程序函数使用(返回),它们应该与函数放在同一个包中吗?我应该以某种方式将它们分组吗?或者也许有更好的方法来做这种事情.. 最佳答案 “相同的包裹”是我最初的想法。在某些情况下,将它们放在不同的包中是有意义的,但只有当它们从多个包中的函数中合法地出现“相同的错误”时,并且这些包都不是逻辑

go - Go的http服务器可以编译 typescript 吗?

目前我有一个NodeJS应用程序,它使用用TypeScript编写并使用Angular2的客户端代码启动http服务器。是否可以在Go中做同样的事情?我尝试在谷歌上搜索TypeScript和Go,但没有找到任何相关内容。我是否应该安装nodeJS,使用npminstall-gtypescript安装typescript编译器,在我更改它们时编译typescript并在我的Go服务器上提供javascript文件?如能提供有关此问题的任何信息,我们将不胜感激。谢谢! 最佳答案 这里有几个选项:通过在您的html中包含typescrip

http - 从请求中获取响应是否会获取所有内容? (golang, 网络/http)

我试图通过仅在看到正确的content-type和content-length小于设置阈值时才读取http响应正文来避免浪费流量。httpRequest,err:=http.NewRequest("GET",url,nil)httpResponse,err:=httpClient.Do(httpRequest)contentType:=httpResponse.Header.Get("Content-Type")//...checkforcorrectcontentType//Readbodyintomemory?content,err:=ioutil.ReadAll(httpResp

http - 扩展golang的http包

我需要扩展http包来实现在状态中包含错误描述的非标准响应,即:400缺少必需的参数而不是标准状态描述的400Badrequest。这是我的实际实现:packagemainimport("fmt""io""io/ioutil""net/http""net/url")typeGatewayHandlerintfuncmain(){varghGatewayHandlerhttp.ListenAndServe(":9000",gh)}func(ghGatewayHandler)ServeHTTP(reshttp.ResponseWriter,req*http.Request){legacyA

php - 将 cookie curl 到 Golang HTTP 请求

我正在尝试从一个使用netscapeHTTPcookie文件登录的旧站点获取信息。这是我的curl请求://Dologinrequestandgetcookiecurl-ccookies-XPOST-i-vhttps://foobar.com/login//Usegeneratedcookiefiletogetmoredataabouttheusercurl-bcookies-i-vhttps://foobar.com/data在PHP中,你可以这样做://Dologinrequestandgetcookie$ch=curl_init();curl_setopt($ch,CURLOPT

json - gzip 压缩到 http responseWriter

我是Go的新手。但是我正在玩RESTApi。在我拥有的两个函数中,我无法从json.Marshal获得与json.Encoder相同的行为我想使用这个函数来gzip我的回复:funcgzipFast(a*[]byte)[]byte{varbbytes.Buffergz:=gzip.NewWriter(&b)defergz.Close()if_,err:=gz.Write(*a);err!=nil{panic(err)}returnb.Bytes()}但是这个函数返回这个:curlhttp://localhost:8081/compressedget--compressed--verbo

http - ISO-8859-1 编码网站中的变音符号

我非常简单的代码片段:import"net/http"import"io"import"os"funcmain(){resp,err:=http.Get("http://example.com")iferr==nil{io.Copy(os.Stdout,resp.Body)}}当example.com是charset=iso-8859-1编码时,我的输出是错误的。例如,变音符号显示不正确:HälloWörld-->H?lloW?rld正确显示变音符号的好的解决方案是什么? 最佳答案 您可以使用包golang.org/x/net/ht

http - 从在 go 中使用 block 传输的 http 服务器读取和流式传输响应

我有一个http服务器,它通过block协议(protocol)响应请求。在这个简单的例子中,它每秒响应一次时间。我有另一台服务器将请求转发到此时间服务器并使用相同的block协议(protocol)进行响应。curl-ilocalhost:8000返回正确的东西但是curl-ilocalhost:9000返回分块响应,但仅在三秒后(不是每秒)返回。这意味着不知何故io.copy并没有真正在输出一出现就刷新输出 最佳答案 io.Copy必须在您调用Flush之前复制全部内容。如果你想在缓冲区填满之前发送内容,你需要在每次写入后调用f

go - ImageMagick Go API HTTP 在 ReadImageBlob 上挂起

我写了一个BeegoHTTP服务器,当用户点击一个端点时:服务器从另一台服务器请求图像(例如imgur)它读取图像的字节并将它们传递给gographics/imagick这(应该)调整图像大小并返回结果的字节数组实际发生的是我的HTTP服务器完全挂起,我什至没有进行错误处理,我在服务器的所有端点上都收到502错误网关。我的代码是这样的:funcprocessContactImage(idxint,image[]byte)([]byte,error){imagick.Initialize()deferimagick.Terminate()log.Println("idx:",idx)mw