2016-01-22 72 views
0

現狀:C#HttpCliennt GetAsync ResponseHeadersRead超時

System.Net.Http.HttpClient.GetAsync與選項ResponseHeadersRead用在客戶端從服務器流數據。

Dim result = _httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead) 

結果將包含稍後寫入文件的流。由於使用了ResponseHeadersRead-Option,數據將不會在第一次請求時加載,但稍後會在訪問流時加載。 然而,當它需要更多然後在幾分鐘之前,我從流中讀取,我會在

System.Net.ConnectStream.Read 

我的問題得到一個超時異常:

有沒有辦法改變這種超時?

+0

我想超時是在你的服務器端。嘗試使用另一個URI,它會在發送響應的第一部分之前等待90秒:http://heyhttp.org?slow=90000 – kiewic

回答

0

您是否試過timeout屬性?

_httpClient.Timeout = TimeSpan.FromSeconds(30); // 30 seconds 
var result = _httpClient.GetAsync(url, HttpCompletionOption.ResponseHeadersRead); 

你用ContinueWith

_httpClient.GetAsync(url).ContinueWith(task => { var response = task.Result; ...} 
+0

是的,但不幸的是,這個URI對描述的行爲沒有影響。 – DanielG