Ich habe ein Programm, das viele HttpWebRequest
Aufrufe enthält. Es befasst sich sehr mit externen API-Anfragen zu verschiedenen Streaming-Plattformen (Twitch, Hitbox, Beam, YouTube). Alle meine Anfragen scheinen gut zu funktionieren..NET HttpWebRequest Timeout tötet alle zukünftigen Anforderungen?
Hier ein Beispiel für eine meine Anfragen ist:
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);
}
}
es ist jedoch ein Problem, dass, wenn eine Anforderung (wie ein momentaner Internet-Schluckauf) ausfällt, und der Try-Catch mit einem Fehler reagiert Aufgrund eines Timeouts werden keine zukünftigen HttpWebRequests funktionieren, bis ich mein Programm neu starte.
Dies geschieht nur, wenn der Fehlerfang durch eine Zeitüberschreitung ausgelöst wird.
Gibt es einen Grund, warum das passiert und wie kann ich es beheben?
Ich habe das gleiche Problem mit HttpClient, die Antwort hier hilft nicht. – jsgoupil