如何在go-wrk命令中发送post数据值?

时间:2016-07-11 07:46:22

标签: go

在卷曲中,我可以通过-d标志发送帖子数据,如下例

curl -X POST -d'{"accountID":"1"}' localhost:1234/geInfo

我应该如何在go-wrk命令中为post请求发送accountID值?

1 个答案:

答案 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和可选主体的新请求。