Como definir um tempo limite mais agressivo para o HttpWebRequest?
Dentro de uma biblioteca de classes portátil, tenho o seguinte método que publica dados em um URL específico. O método funciona muito bem. No entanto, gostaria de especificar um tempo limite mais agressivo (o padrão é 100 segundos).
Considerando que não há nenhuma propriedade de Tempo Limite na classe HttpWebRequest na Biblioteca de Classes Portátil, como posso ter certeza de que a chamada será abandonada se demorar mais que alguns segundos?
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());
}