Как управлять тайм-аутом с помощью httpWebRequest и метода BeginGetRequestStream Windows Phone 7 - PullRequest
2 голосов
/ 28 мая 2011

У меня работает этот пример, но я хочу знать, как точно управлять временем ожидания для этого примера. Пожалуйста, помогите мне. Заранее спасибо

public void callREST()
{

Uri uri = new Uri("http://www.domain.com/RestService"); 
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "POST";
request.ContentType = "application/xml";    

request.BeginGetRequestStream(sendXML_RequestCallback, request);                  

}

private void sendXML_RequestCallback(IAsyncResult result)
{
    var req = result.AsyncState as HttpWebRequest;

    byte[] toSign = Encoding.GetEncoding("ISO-8859-1").GetBytes("<xml></xml>");

    using (var strm = req.EndGetRequestStream(result))
    {
        strm.Write(toSign, 0, toSign.Length);
        strm.Flush();
    }
req.BeginGetResponse(this.fCallback, req);
}

private void fCallback(IAsyncResult result)
{
     var req = result.AsyncState as HttpWebRequest;                
     var resp = req.EndGetResponse(result);
     var strm = resp.GetResponseStream();
     //Do something
}

1 Ответ

1 голос
/ 30 мая 2011

Timeout не поддерживается как часть HttpWebRequest в Silverlight / Windows Phone 7.

Вам потребуется создать Timer и запустить его одновременно с запуском запроса.Если таймер срабатывает до того, как HWR вернет, Abort() запрос и предположим, что он истек.

Дополнительные сведения и пример см .: Тайм-аут HttpWebRequest в WP7 не работает с таймером

...