- private void ProcessHttp()
- {
- HttpwebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("http://www.oschina.net/wp7"));
- request.BeginGetResponse(WebResponseCallback, request);
- }
- 处理结果在WebResponseCallback回调中,最终将保存到IAsyncResul对象中,HttpWebRequest比较特殊已经建立了线程在处理时,所以即使网络不流畅也不会导致UI卡死。
- private void WebResponseCallback(IAsyncResult result)
- {
- try
- {
- HttpWebRequest request = (HttpWebRequest)(result.AsyncState);
- StreamReader sr = new StreamReader(request.EndGetResponse(result).GetResponseStream());
- string data = sr.ReadToEnd(); //将Stream转为String
- data = data.Substring(0, 1024); //只获取前1024个字符。
- Dispatcher.BeginInvoke(() => //传给主线程结果
- {
- MessageBox.Show(data);
- });
- }
- catch
- {
- Dispatcher.BeginInvoke(() => //传给主线程结果
- {
- MessageBox.Show("获取失败");
- });
- }
- }
- //该片段来自于http://www.codesnippet.cn/detail/2407201513214.html
来源: http://www.codesnippet.cn/detail/2407201513214.html