在卷曲中,我可以通过-d标志发送帖子数据,如下例
curl -X POST -d'{"accountID":"1"}' localhost:1234/geInfo
我应该如何在go-wrk命令中为post请求发送accountID值?
答案 0 :(得分:1)
除非我弄错了,否则(目前)不支持传递帖子参数。
我通过跟随-m =" POST"来自go-wrk的代码。参数,否则暗示。 (提供方法" POST"当然并不意味着你也可以传递参数)
参数在main.go:19:
中解析method = flag.String("m", "GET", "the http request method")
然后传递给single_node.go中的客户:16:
go StartClient(
toCall,
*headers,
*method,
*disableKeepAlives,
responseChannel,
wg,
*totalCalls,
)
在#34; meth"中获得第三名变量(client.go:14):
func StartClient(url_, heads, meth string, dka bool, responseChan chan *Response, waitGroup *sync.WaitGroup, tc int) {
然后在这里使用(client.go:55):
req, _ := http.NewRequest(meth, url_, nil)
sets := strings.Split(heads, "\n")
//Split incoming header string by \n and build header pairs
for i := range sets {
split := strings.SplitN(sets[i], ":", 2)
if len(split) == 2 {
req.Header.Set(split[0], split[1])
}
}
timer := NewTimer()
for {
timer.Reset()
resp, err := tr.RoundTrip(req)
respObj := &Response{}
(...)
responseChan <- respObj
}
如果帖子参数可以通过,则必须将它们放在请求中,因为您可以在golang http package网站上查找:
func NewRequest(method, urlStr string, body io.Reader) (*Request, error)
NewRequest返回一个给定方法,URL和可选主体的新请求。