異なる時間に異なる応答を返すようにサーバーに要求する必要があります。つまり、サーバーは異なる応答を生成し、これらの応答は異なる実行時間を要するため、サーバーは応答が利用可能になるとすぐに応答を返します。複数の応答の非同期リクエストgolang
そして、サーバーが私を返すとすぐに、これらの応答を画面に表示したい(私はそれを解決するつもりです)。
私が今までにできることは、サーバーがすべての応答を返すときだけ、応答を印刷することです。したがって、最初の応答に1秒かかり、最後の応答に10秒かかる場合、私のコードはすべてのメッセージを印刷するために10秒待つ必要があります。
EDITは:私が持っているコードを追加します
//Config is gotten from yml file
RestConfig = Config["rest"].(map[string]interface{})
ServerConfig = Config["server"].(map[string]interface{})
RequestUrl := ServerConfig["url"]
RequestReader := bytes.NewReader(body)
Request, _ := http.NewRequest("POST", RequestUrl.(string), RequestReader)
//AppendHeaders append the needing headers to the request
client.AppendHeaders(Request, RestConfig["headers"])
//the type of client.HttpClient is *http.Client
Response, _ := client.HttpClient.Do(Request)
//And to print in the screen
defer Response.Body.Close()
fmt.Println("-> Receiving response:\n---\n")
fmt.Println(Response , "\n---\n-> Response body:\n---\n")
body_resp, _ := ioutil.ReadAll(Response.Body)
fmt.Println(string(body_resp))
fmt.Println("\n--\n")
それを行うにはどのような方法を?
ありがとうございました。
こんにちは@SimoEndre私はそれを行う方法については分かりません。私は例(server.go)をテストしていて、1)それは私には役に立たない(常に0の結果を得る)。そして2)最も重要なのは、私はGoogleのパッケージコードをダウンロードし、必要な方法で修正する(これは私の新しいコードhttp://pasted.co/2f56d290です)、これは以前と全く同じように動作します。それは要求を行い、サーバーは2つの応答を送信し(最初は応答時間の1秒で、2番目は6秒)、httpクライアントは最後の応答を待機します。あなたは私のコードを見てみることができますか?ありがとう。 –
私は、apiサーバーが異なる時間間隔でリクエストを処理していることに恐れています。この場合、何もできません。または私は何かを逃したのですか? –
ありがとう@SimoEndre私はサーバー開発チームと話をします。 –