Innerhalb einer Portable Class Library habe ich die folgende Methode, die Daten an eine bestimmte URL senden. Die Methode funktioniert großartig. Ich möchte jedoch ein aggressiveres Timeout angeben (der Standardwert ist 100 Sekunden).Wie definiert man ein aggressiveres Timeout für HttpWebRequest?
Wenn in der HttpWebRequest-Klasse aus der Portable Class Library keine Timeout-Eigenschaft vorhanden ist, wie kann ich sicherstellen, dass der Aufruf abgebrochen wird, wenn er länger als ein paar Sekunden dauert?
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; ? Das ist schlau genug? –