`
liangoogle
  • 浏览: 272565 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

wp7 HttpWebRequest 网络请求

阅读更多

 

 

这是开始网络请求的方法,网络返回在ResponseCallback处理

    private void DoHttpWebRequest()

        {

            string url = "http://www.cnblogs.com/linzheng";

            var request = HttpWebRequest.Create(url);//创建WebRequest类

            var result = (IAsyncResult)request.BeginGetResponse(ResponseCallback, request);

        }

 

这里处理网络返回流:

 

        private void ResponseCallback(IAsyncResult result)

        {  // 前4行是通用的,在大括号里面才是对流的操作

            HttpWebRequest request = (HttpWebRequest)result.AsyncState;//获取异步操作返回的的信息

            WebResponse response = request.EndGetResponse(result);//结束对 Internet 资源的异步请求

 

            using (Stream stream = response.GetResponseStream())

            using (StreamReader reader = new StreamReader(stream))

            {

                string contents = reader.ReadToEnd();

                int begin = contents.ToString().IndexOf("<title>");

                int end = contents.ToString().IndexOf("</title>");

                string note = contents.Substring(contents.ToString().IndexOf("摘要"), 300);

                //通过呼叫UI Thread来改变页面的显示

                Dispatcher.BeginInvoke(() => { httpWebRequestTextBlock.Text = contents.ToString().Substring(begin + 7, end - begin - 7); textBox2.Text = note; });

 

            }

        }

 

ResponseCallback这个回调是在后台线程调用的,想要更新主线程ui就要使用 Dispatcher.BeginInvoke(() => {}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics