Golang帖子返回json响应

时间:2017-05-04 05:36:40

标签: json curl go

我正在尝试使用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中获得此卷曲结果?

1 个答案:

答案 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)
    }
}