对API的Golang POST请求返回400,而与e的请求相同。 G。邮差返回200

时间:2018-03-03 16:33:19

标签: api post go request

在我的Go应用程序中,我使用Web API,它接受POST请求并在成功时返回一个令牌。

网址如下:“https://accounts.zoho.com/apiauthtoken/nb/create?SCOPE=xxxx&EMAIL_ID=xxxx&PASSWORD=xxxx

如果我在Postman或任何其他工具中发送此信息,我会获得具有预期正文的状态代码200,但在我的go代码中,相同的请求会返回错误代码400。

url := "https://accounts.zoho.com/apiauthtoken/nb/create?SCOPE=xxxx&EMAIL_ID=xxxx&PASSWORD=xxxx"

req, err := http.NewRequest("POST", url, nil)
log.Println(err)

res, err := client.Do(req)
log.Println(err)

defer res.Body.Close()
body, err := ioutil.ReadAll(res.Body)
log.Println(err)

fmt.Println(res)
fmt.Println(string(body))

所有错误都是零,但res结构包含400 Bad Request,最后一个输出(正文)是空的。

输出:

&{400 Bad Request 400 HTTP/1.1 1 1 map[Date:[Sat, 03 Mar 2018 16:48:35 GMT] Connection:[keep-alive] Set-Cookie:[a8c61fa0dc=5f224f2ab9d067cfce10fd0b7fae48bf; Path=/; Secure; HttpOnly] Server:[ZGS]] 0xc04225a080 -1 [chunked] false false map[] 0xc042034a00 0xc0421bc370}

我很感激任何帮助,因为我不知道这个问题来自哪里。

1 个答案:

答案 0 :(得分:0)

我正面临类似的问题。 ipython3 kernelspec install-self的原因仅表示无效的授权令牌。后来我注意到Postman执行401,每次都会更新标头。您可以在golang中提取相同的请求前脚本代码,它可以工作。