2016-10-06 4 views
3

こんにちは、私はGOでPOSTリクエストを作成していますが、実際に終了する前に、それが終了し、例えば私がドッキングウィンドウの画像を引くしようとしています。これは、以下によりカールを行うことができます。これは、以下を返しPOSTリクエストがGOで終了するまでの待ち時間は?

curl -X POST https://address/images/create?fromImage=imagename 

{"status":"Pulling from imagename","id":"latest"} 
{"status":"Already exists","progressDetail":{},"id":"3d30e94188f7"} 
{"status":"Already exists","progressDetail":{},"id":"bf4e27765153"} 
{"status":"Already exists","progressDetail":{},"id":"67280fd39fba"} 
.... many of those 
{"status":"Pull complete","progressDetail":{},"id":"21c062e2346f"} 
{"status":"Digest: sha256:24f26a1344fca6d5ee1adcdsf2d01b20d7823c560ed9d2193466e36bd1f049088"} 
{"status":"Pulling from imagename","id":"20161005"} 
{"status":"Digest: sha256:f527dsfds88676eb25d8f7de5406f46cbc3a995345ddb4bb3d08fcf110458fe3cf"} 
{"status":"Status: Downloaded newer image for imagename"} 

と画像が正常に

を引っ張ったが、私からしようとした場合

に行くれます10

}

その後、私はログにこれを取得する:

map[status:Pulling from imagename] 

との接続が本当に私はこの問題を解決する方法を終了する前に停止しているので、画像が引かれていませんか?

+1

のようなものが必要です。レスポンス全体を 'ioutil.ReadAll'で読み込み、JSONをデコードしてみてください –

答えて

3

Decoderは、一度に1つのストリームから1つのオブジェクトのみをデコードします。すべてのオブジェクトを取得するには、

var pullRespBody interface{} 
dec := json.NewDecoder(resp.Body) 
var err error 
for err == nil { 
    err = dec.Decode(&pullRespBody) 
    // Check err... 
    log.WithFields(logFields).Infof("response body:%+v", pullRespBody) 
    // Do something else with pullRespBody... 
} 
// Deal with err... 
関連する問題