当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » WPF/SliverLight  » 手机App开发
鉴客

WP7上HttpWebRequest的用法

鉴客 发布于 2012年02月24日 0时, 2评/2235阅
分享到: 
收藏 +0
1
在WP7平台上处理Http通讯,可以使用HttpWebRequest类,使用起来比WebClient稍微复杂些但更稳定和强大,下面是一个简单的网络数据获取,HttpWebRequest类位于System.Net这个命名空间中,可以灵活控制Http协议处理,该类的Method属性可以设置为POST来提交表单,设置ContentType属性来控制header等操作。
标签: <无>

代码片段(1) [全屏查看所有代码]

1. [代码][C#]代码     跳至 [1] [全屏预览]

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("获取失败");
  });
 }
}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(2)

  • 1楼:浮云1 发表于 2012-03-28 10:54 回复此评论

    很好

  • 2楼:失狗的耗子 发表于 2013-05-29 20:41 回复此评论

    一开始就beginGetResponese()了  beginGetRequest发消息那块都没放出来- -

开源从代码分享开始 分享代码