草庐IT

test_http

全部标签

java - Go/Java中如何修改http请求中的ip地址

我正在做一个测试工具来测试网络服务器。该工具可以构造一个简单的http请求,并发送到服务器。但是每个请求都应该有不同的srcipaddr。我的问题是。有什么方法可以从http请求构建一个ip包,修改ip地址,然后直接发送到net中吗?我使用java或go(新手)。非常感谢!:) 最佳答案 IP地址的处理级别低于HTTP-具体来说,它是由TCP/IP协议(protocol)完成的。CanItrustthesourceIPofanHTTPrequest?很好地概述了为什么您从HTTP客户端获得的IP值得信赖(并且难以欺骗)。也就是说,H

goji/httpauth - 不能与标准 Golang 'net/http' 库一起使用

代码packagemainimport("fmt""log""net/http""github.com/goji/httpauth")funcrootHandler(whttp.ResponseWriter,r*http.Request){w.Header().Set("Content-Type","text/plain")w.WriteHeader(http.StatusOK)data:="TEST"w.Header().Set("Content-Length",fmt.Sprint(len(data)))fmt.Fprint(w,string(data))}funcmain(){r

unit-testing - 为从中读取的函数填充 os.Stdin

如何在我的测试中填充os.Stdin以获取使用扫描仪从中读取的函数?我使用以下函数通过扫描器请求用户命令行输入:funcuserInput()error{scanner:=bufio.NewScanner(os.Stdin)println("Whatisyourname?")scanner.Scan()username=scanner.Text()/*...*/}现在如何测试这种情况并模拟用户输入?以下示例不起作用。标准输入仍然是空的。funcTestUserInput(t*testing.T){varfile*os.Filefile.Write([]byte("Tom"))os.St

http - Golang,如何使用结构通过 HTTP 编写 JSON 响应?

目标:使用github.com/neelance/graphql-gostarwars示例,我正在尝试向我的ReactJS客户端编写JSON响应。结构的东西对我来说是全新的,顺便说一句,Golang也是如此。问题:为了获得对以下示例GraphQL查询的适当响应,data变量应该是什么?queryclientQuery{character(id:1000){nameappearsIn}}附加信息:根据我在这里和那里阅读的内容,data一定是某种结构。我在示例中有很多可用的结构(请参阅下面的starwars.go)。需要修改的代码(main.go):packagemainimport("e

go - http.ResponseWriter.Write 接口(interface){}

我正在使用denisenkom中的示例运行SQL查询但再加上http.ResponseWriter,我正在为interface{}类型转换而苦苦挣扎。有一些帖子与我正在做的很接近,但解决方案似乎有点笨拙,并且总是使用fmt(我没有使用)。请注意,我的查询有效并返回结果。我只是想显示该结果。这是我认为比较接近但不起作用的代码。我尝试了其他一些东西,但都没有编译。vals:=make([]interface{},len(cols))fori:=0;i但是没有更好的方法来动态检查底层类型并将其转换为可读的东西吗?我只想吐出查询的结果,这似乎是我做错了什么。请注意,它总是符合default的情

file - Go http重用似乎在上传文件中不起作用

当我使用我的go(1.8)http库执行正常的GET/POST方法时,它工作正常,如果我尝试使用http库将文件上传到服务器,客户端将创建大量套接字。在我的测试中,文件被切割成碎片上传到5个goroutines,客户端保持250个套接字。我已经添加了deferresp.Body.Close(),这里是关键代码:const(MaxIdleConnsint=40MaxIdleConnsPerHostint=40)transport:=&http.Transport{MaxIdleConns:MaxIdleConns,MaxIdleConnsPerHost:MaxIdleConnsPerHo

unit-testing - 无法在 golang : "unable to open database file [recovered]"-error 中打开 SQLite 数据库

我刚开始学习golang,不确定我的错误是概念上的还是语言上的。这很奇怪,因为只有在对我的代码进行单元测试时才会出现错误。如果我“去运行”一切正常。作为sqlite驱动程序,我使用mattn/go-sqlite3.这里是问题发生的地方:funcdbExec(command*string){db,err:=sql.Open("sqlite3",dbPath)//Pathanddriveraresetcorrecrtlydeferdb.Close()iferr!=nil{//Noproblemherepanic(err)}_,err=db.Exec(*command)iferr!=nil{

go - 为什么两个 http 处理程序都被调用

这个问题在这里已经有了答案:Whythissimplewebserveriscalledevennumbertimes?(1个回答)HandleFuncbeingcalledtwice(4个答案)http.ListenAndServehandlerfunctionexecutedtwiceonport80[duplicate](2个答案)Runningasimpleserver,butthecounterseemstogoupby3,why?[duplicate](2个答案)关闭5年前。为什么每次我用浏览器访问服务器时都会调用这两个处理程序。我认为根据书本只会调用一个或另一个。我错过了

testing - 测试 Go 中未导出函数的命名约定

我无法追溯我是从哪里知道的,但通常情况下,如果有人为方法Foo编写测试,则相应的测试名为TestFoo。如果测试一个未导出的函数,比如foo,那么测试的名称应该是什么?我的问题来自这样一个事实,当要求为未导出的函数生成测试时,JetBrainsIDEforGo会生成类似Test_foo的内容。这种行为可能是有道理的,因为如果你有Foo并且它是未导出的counterpatfoo在同一个包中,你会想以某种方式对它们进行不同的测试(在至少对于IDE中的跳转测试功能而言)。那么在未导出的函数之后命名测试有什么约定吗?顺便说一句:Go的文档testing包说,如果是,则执行测试:anyfunct

sockets - http: 接受错误:接受 tcp [::]:9000: accept4: 打开的文件太多; 1s 重试

进程的pid是1996291。/proc/1996291/fd中有65534个fd,大部分fd都是socket,像这样:lrwx------1rootroot64Dec3013:5910000->socket:[952574733]lrwx------1rootroot64Dec3013:5910001->socket:[952566188]我知道括号中的数字是套接字的inode。/proc/net/tcp中的每个套接字都应该有一个相同的inode。但是有的inode能找到,有的找不到:cat/proc/net/tcp|grep952574733如果我找到inode,输出如下:sllo