2017-03-17 18 views
0

私はクライアントに何らかの応答を読むためにサーバに接続しています。 Postmanを使用してリクエストを実行すると、特定のリクエストに応答するのに約5分かかります。HTTPリクエストタイムアウトになる

私はこのクライアントをGo言語で書いており、次のコードを実行して10分のタイムアウトを設定しています。

_client := &http.Client{ 
     Timeout: 10 * time.Minute, 
} 

resp, err := _client.Post(c.Url, "application/json", r) 

ただし、エラーは2分後に要求が終了します。エラーはEOFと表示されます。

タイムアウトを15秒に設定して、設定が正常に動作し、要求が期待どおりに15秒で終了するかどうかを確認しました。

タイムアウトが10分であることを確認するにはどうすればよいですか?

+1

エラーはなんですか? – JimB

+0

可能な重複:[Golangのhttp.Get()要求のタイムアウトを設定する方法](http://stackoverflow.com/questions/16895294/how-to-set-timeout-for-http-get-requests-in -golang); [HTTPクライアント、アイドルタイムアウト](http://stackoverflow.com/questions/27784521/http-client-idle-timeout)を参照してください。彼らはあなたの問題を解決しますか? – icza

+0

@ KashifNazar:EOFは何らかの理由でサーバーが接続を切断したことを意味します。あなたは完全な要求を書いたと思いますか? 'r'は有効か、それとも要求の本文をブロックしていますか? – JimB

答えて

0

私は同じ問題を抱えていましたが、GAEでコードが実行されていて、2分後にリクエストがキャンセルされました。あなたのコードは、あなたがclient.Timeout

See here

-1

をタイムアウト時間を指定することができるはず走る場所を完全にコントロールを持っているのであれば、ここで本当の問題は、あなたが実装したくない方法で、HTTPを使用していることですあなたに。あなたはあなたの問題とそれを解決するためのベストプラクティスについてもっと読むことができますhere。短い答えは、完了したときに結果を見つけるためにURLとともにジョブが実行されているとクライアントにすばやく応答する方がよいということです。

関連する問題