草庐IT

test_http

全部标签

http - 转发文件上传

我正在使用go开发一个api端点,它将接受上传,然后立即转发到另一个API。我不想将文件写入任何地方的磁盘,但我不确定将文件临时存储在内存中的方式是否正确。我能找到的所有示例都涉及将文件保存到磁盘。我已经在下面发布了我正在做的事情。我从第二个API得到的响应是我未能发布文件,但我可以看到它正在接收“userID”字段。有人可以指出我做错了什么,并可能建议这是否是解决此问题的最佳方法吗?路由处理器func(r*Routes)forwardFile(whttp.ResponseWriter,req*http.Request){parameters:=mux.Vars(req)userID:

testing - Go 测试覆盖率中的 covered 和 not tracked 是什么意思?

我已经启动了一个小型Go应用程序来对其进行测试和学习。在主包中,我有一个main.go,例如一个名为NewApp的函数。在我的测试文件中,我多次调用它,但在覆盖率报告中,它的第一行被标记为“未跟踪”。此函数返回一个Appstruct,但整个结构定义被标记为“未跟踪”。另一方面,我无法理解“未覆盖”和“未跟踪”之间的区别。有没有办法测试主要功能?我看不出这样做有什么好处。我的密码是here. 最佳答案 谢谢,所以“未跟踪”它不在覆盖百分比中考虑。 关于testing-Go测试覆盖率中的co

http - Golang网拨用户:pass@ip:port gives: no such host

我正在尝试连接到代理服务器以启动HTTPCONNECT隧道。代理服务器使用身份验证。但是,此代码无法正常工作:conn,err:=net.Dial("tcp","[user:pass@111.222.333.444]:5555")即使主机存在,我也会收到错误消息:"dialtcp:lookupuser:pass@111.222.333.444:nosuchhost"我正在使用的字符串格式在这篇文章中有所描述。似乎无法让它工作。https://stackoverflow.com/a/8858209/6767074 最佳答案 我终于找到

go - 如何使用 `go test` 对 golang 中程序的 *section* 进行计时和分析?

问题:如何使用gotest对golang中程序的部分进行计时和分析?用例:我有一个B+tree的并发批量操作处理算法。我正在使用gotest进行分析并与其他基线算法(序列化版本、悲观锁定等)进行比较。对于测试用例设置,我将创建一个包含1M条目的B+树并创建一个1M操作列表,然后我开始实际测试以BulkProcess这些操作。funcTestInputTreeM1e6N1e6(*testing.T){M:=1000000//TestPreparation1:Setupthetreetree:=NewTree(cmp)file1name:="InitalTree_10000000.txt"

unit-testing - 在 go api 调用中测试

我想为我的api编写测试用例,例如:数据库查询失败、代码错误、响应错误等。所以我在Controller文件夹中创建了一个名为controller_test.go的文件。这是我的代码:packagecontrollersimport("net/http""testing""net/http/httptest")func(imcImessageSoundController)TestHealthCheckHandler(t*testing.T){req,err:=http.NewRequest("GET","sound/imessage_sound",nil)iferr!=nil{t.Fa

Go - Web 服务器在同一端口上监听多个协议(protocol)(HTTP 和 RTMP)

我正在尝试在Go中实现RTMP协议(protocol)以配合我的Web应用程序,但是我似乎无法找到在同一端口上同时处理HTTP和RTMP的解决方案。这个想法是这样的。packagemainimport("fmt""io""net/http")funcmain(){http.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){io.WriteString(w,"Hello!")})http.HandleFunc("/rtmp",func(whttp.ResponseWriter,r*http.Request){//RTMPha

http - 多线程Go for HTTP get

我在一个API中使用Go来获取我所在城市的公交车频率,但是当我尝试使HTTPGet访问许多URL时,我有点卡在了线程上。如果没有并发,程序需要超过16分钟才能完成1500个url调用以获取HTTP状态代码,我试图使用并发,但在阅读了很多帖子后我不明白goroutines是如何工作的......想法是制作一个函数并更改请求的数量,如下所示:gogetBusPostStatus(600,800)但我完全坚持...代码如下:packagemainimport("fmt""net/http""strconv""time")variint=0varconvStrstringvarmessage=

http - 转到 IRIS http frameowrk,我无法正确路由

好的,首先让我开始说我知道我真的应该使用net/http框架,除非我有自己编写的知识或者我明确地尝试过但它没有用。然而,我是个白痴,我认为我可以通过使用框架来节省一些时间和头痛,我认为选择一个只由一个人维护的框架是个好主意。框架在这里:https://github.com/kataras/iris但我不希望你通读所有内容。但是,它是基于fasthttp之上的,你们中的一些人可能有经验(希望如此)。我遇到的这个框架的问题是静态内容服务的配置。例如,我有我的索引页面:iris.Get("/",serveHome)在ip:port上提供html模板。我有这样列出的静态资源:iris.Stat

macos - 在 MacOS 上的 golang 中使用带有 http.Get 的自签名 SSL

我没有找到正确的解决方案,所以只需从MacOSSierra上的golang调用URL到使用自签名SSL证书的服务器。我尝试运行一个使用https://github.com/olivere/elastic的程序执行http查询,所以我实际上对代码源没有“控制权”。我正在寻找一个解决方案,例如:通过设置bash变量(导出GOLANG_SSL=false?)将自签名证书设置为golang或欢迎任何其他想法!谢谢, 最佳答案 您应该在运行Go客户端的主机操作系统中安装(信任)自签名证书。没有“Setself-signedcertiftogo

go - http.ServeFile 获取不到静态源,但是命令运行可以获取

我使用InteljIDEA开发golang,但是当我使用调试构建我的项目时,当调试到这一行时http.ServeFile(w,r,"./static/html/login.html"),我得到404notfound,但是在命令运行中,我可以得到这个静态页面。 最佳答案 路径"./static/html/login.html"是相对路径。当您使用gorun...时,您当前可能位于该相对路径正确解析的目录中。IntelliJ二进制文件可能在与您的go源代码不同的目录中执行,导致此相对路径不正确。您可以在调用ServeFile(...)时