ポータブルクラスライブラリの中で、私は特定のURLにデータを投稿する以下のメソッドを持っています。このメソッドは素晴らしいです。しかし、より積極的なタイムアウト(デフォルトは100秒)を指定したいと思います。HttpWebRequestのより積極的なタイムアウトを定義する方法は?
ポータブルクラスライブラリのHttpWebRequestクラスにタイムアウトプロパティがないことを考慮して、数秒以上かかると呼び出しが放棄されるようにするにはどうすればよいですか?
public async Task<HttpResponse> PostAsync(Uri uri, string data)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
using (Stream requestStream = await request.GetRequestStreamAsync())
{
byte[] postBytes = Encoding.UTF8.GetBytes(data);
requestStream.Write(postBytes, 0, postBytes.Length);
}
HttpWebResponse response = (HttpWebResponse)await request.GetResponseAsync();
return new HttpResponse(response.StatusCode, await new StreamReader(response.GetResponseStream()).ReadToEndAsync());
}
HttpWebRequest.Timeout = 20000; ?これは十分にスマートですか? –