私はそれに多くのHttpWebRequest
コールを持つプログラムを持っています。さまざまなストリーミングプラットフォーム(Twitch、Hitbox、Beam、YouTube)への外部APIリクエストを多く扱っています。すべての私の要求はうまくいくようです。ここで.NET HttpWebRequestタイムアウトは今後のリクエストをすべて終了しますか?
は、私の要求の一つの例である:
private void save_Click(object sender, RoutedEventArgs e)
{
string postUrl = "https://api.twitch.tv/kraken/channels/" + this.channelID;
string postData = "channel[status]=" + Uri.EscapeDataString(status.Text) +
"&channel[game]=" + Uri.EscapeDataString(game.Text);
byte[] postByte = Encoding.UTF8.GetBytes(postData);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl);
request.Method = "PUT";
request.Accept = "application/vnd.twitchtv.v5+json";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postByte.Length;
request.Headers.Add("Authorization", "OAuth " + password.Password);
request.Headers.Add("Client-ID", this.clientID);
request.Timeout = 15000;
try
{
Stream putStream = request.GetRequestStream();
putStream.Write(postByte, 0, postByte.Length);
putStream.Close();
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
}
catch (WebException err)
{
MessageBox.Show("Unable to update channel information:\n" + err.Message);
}
}
はしかし、要求が(例えば瞬間的なインターネットしゃっくりのように)失敗した、とのtry-catchがエラーで応答した場合という問題がありましたタイムアウトが原因で、私のプログラムを再起動するまで、将来のHttpWebRequestsは機能しません。
これは、エラーキャッチがタイムアウトによって開始された場合にのみ発生します。
これが発生する理由はありますか?どのように修正できますか?
私はHttpClientで同じ問題を抱えていますが、ここの答えは役に立ちません。 – jsgoupil