[英]c# HttpCliennt GetAsync ResponseHeadersRead Timeout
現在的情況:
帶有選項ResponseHeadersRead的System.Net.Http.HttpClient.GetAsync在客戶端上用於從服務器流數據。
Dim result = _httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead)
結果將包含一個流,稍后將其寫入文件。 由於ResponseHeadersRead-Option,將不會在第一個請求時加載數據,而是在訪問流時稍后加載數據。 但是,當我花了幾分鍾才從該流中讀取內容時,我將在
System.Net.ConnectStream.Read
我的問題:
有沒有辦法改變超時時間?
您是否嘗試過超時屬性?
_httpClient.Timeout = TimeSpan.FromSeconds(30); // 30 seconds
var result = _httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead);
您是否使用過ContinueWith
:
_httpClient.GetAsync(url).ContinueWith(task => { var response = task.Result; ...}
好的,我自己找到了解決方案:
這是我一直在尋找的設置:
https://msdn.microsoft.com/de-de/library/system.net.httpwebrequest.readwritetimeout(v=vs.110).aspx
這是客戶端設置。 使用httpclient時,可以通過以下方式進行設置:
Dim handler As New WebRequestHandler()
handler.ReadWriteTimeout = 1000
Dim httpClient = New HttpClient(handler)
默認值為300秒。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.