janneyabc 发表于 2015-5-23 14:00:18

Windows phone 8 HTTP Post 请求

  
  一般我们在写 http post 的时候 都是下边这种情况



1 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
2
3 request.Method = "POST";
4
5 request.ContentType = "application/x-www-form-urlencoded";
6
7 request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
8
9 ...(省略代码,网上有很多就不多写了)



windows 8




1 private async Task WebRequestPost(string uri, string requestDetails)
2         {
3             string result = string.Empty;
4             WebRequest webRequest = WebRequest.Create(uri);
5             webRequest.ContentType = "application/x-www-form-urlencoded";
6             webRequest.Method = "POST";
7             byte[] bytes = Encoding.UTF8.GetBytes(requestDetails);
8             using (Stream outputStream = await webRequest.GetRequestStreamAsync())
9             {
10               outputStream.Write(bytes, 0, bytes.Length);
11             }
12             using (WebResponse webResponse = await webRequest.GetResponseAsync())
13             {
14               StreamReader sr = new StreamReader(webResponse.GetResponseStream());
15               result = sr.ReadToEnd();
16             }
17             return result;
18         }
  windows phone 8



1 public async Task HttpRequestPost(string uri, string requestDetails)
2         {
3             string resultStr = "";
4             HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
5             // 设定发送方式
6             request.Method = "post";
7             request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
8             byte[] buffer = System.Text.Encoding.UTF8.GetBytes(requestDetails);
9             // 设定内容长度
10             request.ContentLength = buffer.Length;
11
12             //将需要发送的字符数组写入请求流中
13             using (var stream = (await Task.Factory.FromAsync(request.BeginGetRequestStream, request.EndGetRequestStream, null)))
14             {
15               await stream.WriteAsync(buffer, 0, buffer.Length);
16             }
17
18             //响应读取
19             using (var response = (HttpWebResponse)(await Task.Factory.FromAsync(request.BeginGetResponse, request.EndGetResponse, null)))
20             {
21               using (var responseStream = response.GetResponseStream())
22               {
23                     using (var sr = new StreamReader(responseStream))
24                     {
25                         resultStr = await sr.ReadToEndAsync();
26                     }
27               }
28               response.Close();
29             }
30             return resultStr;
31         }
  第一次发表文章 不太会写 如果我有写的不对得地方 欢迎各位 大牛 多提意见 谢谢!
页: [1]
查看完整版本: Windows phone 8 HTTP Post 请求