6

HttpClientWindows Phone アプリでオブジェクトにタイムアウトを設定しようとしています。ただし、タイムアウトまでにリクエストが完了しない場合GetAsync、値は返されません。

次のコードを使用して応答を取得しています。

HttpClientHandler handler = new HttpClientHandler();
HttpClient client = new HttpClient(handler);
client.Timeout = TimeSpan.FromSeconds(5);
client.BaseAddress = new Uri("http://www.foo.com");
HttpResponseMessage response = await client.GetAsync("/boo.mp3");//<--Hangs
byte[] data = await response.Content.ReadAsByteArrayAsync();

GetAsync から結果を取得するためにタイムアウトを適切に設定するにはどうすればよいですか?

4

2 に答える 2

2

チェックするコードを作成せずに、いくつかの可能性のある原因を以下に示します。

1) 5 秒のタイムアウトは、完全なファイル「boo.mp3」をダウンロードするのに十分な長さではないため、タイムアウトにより操作が停止します。
2) Web サーバーの応答に時間がかかりすぎている (可能性は低いですが、モバイル ネットワークでは可能です)

タイムアウト値を完全に削除するか、より現実的な値に設定することをお勧めします。

于 2013-08-14T12:11:26.260 に答える