【发布时间】:2018-03-03 16:33:19
【问题描述】:
在我的 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))
所有错误都是 nil,但 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}
我会很感激任何帮助,因为我不知道这个问题来自哪里。
【问题讨论】:
-
我在使用微服务时也遇到了同样的问题。在终端中使用 go run 运行程序时,您可以打印应该在控制台上得到的错误输出吗
-
我更新了我的问题并添加了输出,但正如我所说,错误为零,响应“对象”包含 400。