windows phone上的HttpWebRequest超时方法
HttpWebRequest request = WebRequest.CreateHttp("http://www.cnblogs.com/therock");
request.AllowReadStreamBuffering = true;
var observableRequest = Observable.FromAsyncPattern<WebResponse>(request.BeginGetResponse, request.EndGetResponse);
Observable
.Timeout(observableRequest.Invoke(), DateTimeOffset.Now.AddSeconds(3)) //这里设置超时3秒
.ObserveOnDispatcher()
.Subscribe(response => {
StreamReader sr = new StreamReader(response.GetResponseStream());
string str = sr.ReadToEnd();
//MemoryStream ms = new MemoryStream();
//response.GetResponseStream().CopyTo(ms);
//byte[] StringAsByteArray = ms.GetBuffer();
//str = Encoding.UTF8.GetString(StringAsByteArray, 0, StringAsByteArray.Length);if (str.Length > 50)
MessageBox.Show(str);
}, exception => {
MessageBox.Show("报错");
});