草庐IT

test_http

全部标签

javascript - json:无法将字符串解码为 main.test_struct 类型的 Go 值

我从api收到一个json,我尝试解码它,但我不明白我得到的错误:json:cannotunmarshalstringintoGovalueoftypemain.test_struct这是我得到的json:INFO:2017/02/0317:47:53ApiRecordGeo.go:66:"{\"lat\":48.892423,\"lng\":2.215331,\"acc\":1962}"这是我的代码:typetest_structstruct{Latfloat32`json:"lat"`Lngfloat32`json:"lng"`Accint`json:"acc"`}funcpost

http - 标准库 http 包默认记录到 stdout,我可以禁用它吗?

在Go中使用内置的http模块时,我注意到http.ListenAndServe()将默认对stdout进行日志记录调用。在我的终端中显示的主要内容是:http:TLShandshakeerrorfromx.x.x.x:x:tls:clientofferedanunsupported,maximumprotocolversionof301.现在我明白了这个错误是什么以及导致它的原因,但事实是,我并不特别在意。如何阻止http包(或ListenAndServe()等)默认记录到stdout?它堵塞了我漂亮的控制台。我95%确定我不是记录消息的人,因为我设置的所有日志都有“信息”、“警告”

rest - REST api设计的GET方法中的HTTP状态码

我正在学习RESTAPI设计中涉及的最佳实践,并编写了一个函数来处理GET/citiesHTTP/1.1查询。这个函数包含cities,它是一个结构数组,包含多个城市的cityname,citycode。下面是代码funcFindCitiesHandler(whttp.ResponseWriter,r*http.Request){w.Header().Set("Content-Type","application/json;charset=UTF-8")iflen(cities)==0{w.WriteHeader(404)return}iferr:=json.NewEncoder(w)

http - MIME ParseMediaType 在多部分边界上失败

我是一个接受多部分/表单数据请求的Golangapi。但是,对于某些客户端,它无法解析表单,因为它不喜欢客户端使用的边界。来自客户端的header是:Content-Type:[multipart/form-data;boundary================1648430772==]我已将其缩小到mime包中的ParseMediaType函数。如果我调用:bad:="multipart/form-data;boundary=1650458473"d,params,err:=mime.ParseMediaType(v)iferr!=nil{fmt.Println("err",er

debugging - 有什么方法可以获取 'http: response.WriteHeader on hijacked connection' 错误的堆栈跟踪?

我们的Web应用程序正在将大量“http:response.WriteHeaderonhijackedconnection”消息记录到stderr。有什么方法可以让http库输出堆栈跟踪或其他调试信息以及此消息(或将其升级为错误),以便追踪位置在我们的应用程序中会发生这种情况吗? 最佳答案 由于永远不会返回错误,并直接写入http.Server.ErrorLog,这是您唯一可以拦截它的地方。您可以在调试器中运行它并在该点中断,但如果在生产环境中运行,这可能没有用。您可以使用io.Writer创建一个新的*log.Logger,当它遇

go - 使用 http.ResponseBody 时测量上传速度

在使用http.ResponseWriter上传大量数据时,有没有办法衡量客户端的下载速度?上下文更新:我正在为blob存储编写一个流式下载端点,它以block的形式存储blob。文件非常大,因此加载和缓冲整个blob是不可行的。能够监控缓冲区状态、写入的字节数或类似内容将允许更好地安排block下载。例如当Write()响应时,有没有办法检查已经排队的数据量?上下文示例,但不使用文件对象。funcdownloadHandler(whttp.ResponseWriter,req*http.Request,pshttprouter.Params){//Opensomefile.f:=os

unit-testing - 仅测试文件中的掩码包名称

为了追求100%的单元测试覆盖率,我们尝试在一个函数中测试多行代码。相关函数调用运行时包://functionNamereturnsastringrepresentingthefunctionnameofthefunctionnstackframesabovethecaller.//ifn=0,thenameofthefunctioncallingfunctionName()willbereturned.funcfunctionName(nint)string{pc,_,_,ok:=runtime.Caller(n+1)if!ok{return"unknownfunction"}me:

go - 配置http客户端时不断出现编译错误

这里是golang的新手。试图关注samplecode并创建了以下代码片段,但我不断收到编译错误。不知道为什么。gorunte2.go#command-line-arguments./te2.go:36:syntaxerror:unexpectedsemicolonornewline,expectingcommaor}这是代码片段packagemainimport"fmt"import"bufio"import"os"import"time"import"net/http"import"sync/atomic"varreq=[]byte("GET/smallHTTP/1.1\r\n"+

unit-testing - 在 Go 中进行单元测试时,是否可以动态断言两个值是否相等?

我刚刚开始使用Go。我正在编写单元测试,我希望能够使用表格进行测试,其中要与实际结果进行比较的结果有时应该或不应该相等。例如,这是我目前拥有的代码:packagemainimport("github.com/stretchr/testify/assert""testing")funcTestFunc(t*testing.T){tables:=[]struct{inputstringcomparisonResultstringshouldBeEqualbool}{{"someirrelevantinput","someresult",true,},{"someotherirrelevan

python - 这个 HTTP 请求有效吗?

我用swagger-codegen制作了一个python服务器。我有一个端点接收带有mutlipart/form-data的文件并且还用go-swagger创建了一个客户端用于测试。创建了一个要上传的文件:$echo"123filecontent321">data并使用客户端将文件上传到服务器。生成的HTTP请求如下所示:POST/api/order/1/attachmentHTTP/1.1Host:127.0.0.1:8080User-Agent:Go-http-client/1.1Transfer-Encoding:chunkedAccept:application/jsonCon