我正在尝试使用golang向我的(magento)网络服务器发出请求。
我设法发出了一个POST请求,但是,当我从cmd使用CURL时,我没有得到相同的响应。 我跟着这篇帖子(How to get JSON response in Golang),但没有给我任何回应。
所以我试过这个
package main
import (
"fmt"
"net/http"
"os"
)
var protocol = "http://"
var baseURL = protocol + "myserver.dev"
func main() {
fmt.Print("Start API Test on: " + baseURL + "\n")
r := getCart()
fmt.Print(r)
}
func getCart() *http.Response {
resp, err := http.Post(os.ExpandEnv(baseURL+"/index.php/rest/V1/guest-carts/"), "", nil)
if err != nil {
fmt.Print(err)
}
return resp
}
这只是返回http响应,如
{200 OK 200 HTTP/1.1 1 1 map[Date:[Thu, 04 May 2017 05:30:20 GMT] Content-Type:[application/json; charset=utf-8] Set-Cookie:[PHPSESSID=elklkflekrlfekrlklkl; expires=Thu, 04-May-2017 ...
使用curl -g -X POST "my.dev/index.php/rest/V1/guest-carts/"
时,我会检索某种我需要继续的ID。
如何在golang中获得此卷曲结果?
答案 0 :(得分:3)
您需要阅读resp.Body
(并且不要忘记关闭它!),即
func main() {
fmt.Print("Start API Test on: " + baseURL + "\n")
r := getCart()
defer r.Body.Close();
if _, err := io.Copy(os.Stdout, r.Body); err != nil {
fmt.Print(err)
}
}