【发布时间】:2018-03-21 11:15:43
【问题描述】:
我正在尝试在 Golang 中执行这个确切的 CURL 命令:
curl -X GET -H "Content-Type: application/json" -H "WEB2PY-USER-TOKEN: token-string" -d '{"rfrID": "111111"}' 'url-string'
这有点奇怪,因为它是一个带有 JSON 主体的 GET HTTP 调用。然而,我们的供应商要求我们像这样调用 API。我不知道如何让我们的 Golang 程序执行这个 API。
这是迄今为止我尝试过的 Go 代码:
data := Payload{
// fill struct
RfrID: "111111",
}
payloadBytes, err := json.Marshal(data)
if err != nil {
// handle err
}
body := bytes.NewReader(payloadBytes)
log.Printf("[INFO] Input body status: %v\n", body)
req, err := http.NewRequest("GET", "url-string", body)
if err != nil {
// handle err
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Web2py-User-Token", "token-string")
resp, err := http.DefaultClient.Do(req)
if err != nil {
// handle err
}
log.Printf("[INFO] Artemis status: %v\n", resp)
defer resp.Body.Close()
在我的日志中打印以下内容:
2017/10/10 07:31:56 [INFO] Input body status: &{[123 34 114 102 114 73 68 34 58 34 49 49 49 49 49 49 34 125] 0 -1}
我希望这个主体是 JSON 主体,例如:
{"rfrID": "111111"}
【问题讨论】:
-
显示到目前为止您尝试过的内容。
-
谢谢,我已经添加了更多代码并尝试了该链接,但还没有弄明白