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("报错");
                });

posted @ 2012-07-06 17:52  therockthe  阅读(211)  评论(0编辑  收藏  举报