ahxcjxzxh 发表于 2015-5-23 14:07:40

windows 8 httpclient 联网方式

  基本技术点    自己记录用于复习
  开头顺便记下解析 xml的 正则表达式
  XElement element = XElement.Parse(s);
                OutputList.ItemsSource =
                  (from c in element.Elements("item")
                     select c.Attribute("name").Value
                  );
  很简单from和select语句 很方便
  
  windows 8 中 使用httpclient代替windowsphone 中的   httpwebclient   , 使用方法 也有些不同 。
  下面是windows 8种使用httpclient的各种方式
  a以get的方式 对服务器发起请求   获得string
  HttpResponseMessage response = await httpClient.GetAsync(resourceUri);    // await关键字    异步加载      *resourceUri 是请求的Url
  stringstatues_string=   ((int)response.StatusCode) + " " + response.ReasonPhrase + Environment.NewLine;    //服务器返回请求的状态
  responseBodyAsText = await response.Content.ReadAsStringAsync();             //将 请求返回的 柳 转化为string   
  
  b以get的方式对服务器发去请求    接受返回来的流
  string resourceAddress =http://www.baidu.com";
  HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, resourceAddress);                              
  HttpResponseMessage response = await httpClient.SendAsync(request,            HttpCompletionOption.ResponseHeadersRead);
  OutputField.Text = response.StatusCode + " " + response.ReasonPhrase + Environment.NewLine;
  StringBuilder responseBody = new StringBuilder();               
  using (Stream responseStream = await response.Content.ReadAsStreamAsync())
  {
  byte[] responseBytes = new byte;
                   read = await responseStream.ReadAsync(responseBytes, 0, responseBytes.Length);
  }
  c    以post的方式上传 string
  HttpResponseMessage response = await httpClient.PostAsync(resourceAddress,                     new StringContent(RequestBodyField.Text));
  catch (HttpRequestException hre)             {               rootPage.NotifyUser("Error", NotifyType.ErrorMessage);               OutputField.Text = hre.ToString();             }         
  catch (TaskCanceledException)             {               rootPage.NotifyUser("Request canceled.", NotifyType.ErrorMessage);             }            
  finally             {               Helpers.ScenarioCompleted(StartButton, CancelButton);             }             //各种异常处理
  
  d   以post的方式 上传流数据
  byte[] subData = new byte;            
  for (int i = 0; i < subData.Length; i++)         
  {               subData = 64;            }
  Stream stream=(Stream)new MemoryStream(subData);
  StreamContent streamContent = new StreamContent(stream);
  string resourceAddress =“http://www.baidu.com”;
            HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, resourceAddress);
  request.Content = streamContent;
             request.Headers.TransferEncodingChunked = true; // 假设我们不知道内容的长度
  HttpResponseMessage response = await httpClient.SendAsync(request);       //发送数据   
  若消息返回来后数据都在response中
  
  
  
  
页: [1]
查看完整版本: windows 8 httpclient 联网方式