2017-05-04 9 views
0

私は(マゼンタ)ウェブサーバーにゴランを使ってリクエストしようとしています。ゴランポストリターンjsonレスポンス

私はPOST要求を管理しましたが、cmdからCURLを使用しても同じ応答が得られません。 私はこの投稿(How to get JSON response in Golang)に従っていますが、私には何の応答も与えません。

だから私は、これは単なるcurl -g -X POST "my.dev/index.php/rest/V1/guest-carts/"を使用している場合、私は続行する必要があるIDのいくつかの種類を取得

{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 ... 

ようなHTTP REPONSEを返すこの

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 
} 

を試してみました。 このカールの結果をgolangでどのように取得できますか?あなたはresp.Bodyを読む必要が

+0

何の 'sカールの出力?サーバーがJSONでリクエストに答えてもよろしいですか? – Grasshopper

+0

@Grasshopperはドキュメント(http://devdocs.magento.com/swagger/#/ - > quoteGuestCartManagementV1)に従ってrespnseはapplication/jsonです。このようなカートIDを生成します。e746bf2663fd302aebc3d5a8c8443498 – xhallix

答えて

3

(と、それを閉じることを忘れないでください!)、すなわち

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) 
    } 
} 
+0

'r.Body'はストリームです。あなたはそれを読む必要があります。 'fmt.Print(r.body)'ではアドレスだけを表示します。 – ain

+0

うん、ここで私を助けてくれてありがとう – xhallix