HttpClientを使用してWebリクエストを作成していますが、「タイムアウト」機能が含まれています。タイムアウト機能を除いて、すべて正常に機能します。
これは、リクエストが2〜3回ヒットしたときに「集約例外」をスローします([サインイン]ボタンをクリックしてリクエストがタイムアウトになるなど)。
例外を「キャッチ」しようとしましたが、機能しません。
使用したコード:
try
{
HttpClient httpClient = new HttpClient();
//explicit timeout for testing
TimeSpan requestTimeout = new TimeSpan(1000);
httpClient.Timeout = requestTimeout;
HttpContent httpContent = new StringContent(postJSON);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = null;
response = await httpClient.PostAsync(url, httpContent);
if (response != null)
{
response.EnsureSuccessStatusCode();
netResults = await response.Content.ReadAsStringAsync();
Logger.Log("NetworkRequest:ResponseStream:Json result:" + netResults);
}
if (this.convertedType != null)
{
MemoryStream assetReader = GetMemoryStreamFromString(netResults);
assetReader.Position = 0;
object value = fromJSON(assetReader, this.convertedType);
networkReqSuccessWithObjectCallback(this, value);
}
else
{
//Return netResult as string.
networkReqSuccessWithStringCallback(this, netResults);
}
}
catch (TaskCanceledException)
{
ErrorException ee = null;
ee = new ErrorException("RequestTimeOut");
NotifyNetworkDelegates(ee);
}
catch (WebException we)
{
// failure
ErrorException ee = null;
ee = ErrorException.fromJSON(we.Message);
NotifyNetworkDelegates(ee);
}
catch (Exception e)
{
Do something.
}
ここで何が問題になっているのかについてのアイデア(C#+ XAML + Win8を使用)