2017-03-17 135 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一起運行,以便在完成時找到結果。