Внутри переносимой библиотеки классов у меня есть следующий метод, который отправляет данные на определенный URL-адрес. Метод прекрасно работает. Однако я хотел бы указать более агрессивный тайм-аут (по умолчанию 100 секунд).
Учитывая, что в классе HttpWebRequest из переносимой библиотеки классов нет свойства Timeout, как я могу убедиться, что вызов прерывается, если он занимает больше нескольких секунд?
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());
}