zoukankan      html  css  js  c++  java
  • Windows Phone 十五、HttpWebRequest

    Windows 运行时中支持网络资源访问的对象:HttpWebRequest 对象

    发送 GET/POST 请求,HttpHelper 封装,超时控制。

    HttpClient 对象

    发送 GET/POST 请求,请求进度监控。

    两种常用请求方式:GET 请求

    主要是从服务器请求数据

    可以传递有限(1024字节)数据

    POST 请求

    主要是往服务器发送数据,传递数据大小没有限制。

    也可以接收服务端数据,但大多数是请求结果标识。

    HttpWebRequest
    1     <Grid>
    2         <WebView
    3             x:Name="webView"/>
    4     </Grid>
     1         protected async override void OnNavigatedTo(NavigationEventArgs e)
     2         {
     3             //创建请求对象
     4             HttpWebRequest request = WebRequest.CreateHttp("http://www.baidu.com");
     5             //设置请求参数
     6             request.Accept = "*/*";
     7             request.Method = "GET";
     8             request.Headers["Cookie"] = "key1=value;key2=val";//密码存储区
     9             //发送请求,获取服务端响应
    10             var response = await request.GetResponseAsync();
    11             using (var stream = response.GetResponseStream())
    12             {
    13                 using (var reader = new StreamReader(stream))
    14                 {
    15                     var result = await reader.ReadToEndAsync();
    16                     webView.NavigateToString(result);
    17                 }
    18             }
    19         }

    Index

    1     <StackPanel>
    2         <TextBox x:Name="txt1"/>
    3         <TextBox x:Name="txt2"/>
    4         <TextBox x:Name="txt3"/>
    5         <Button
    6             Content="Send"
    7             Click="Button_Click"/>
    8     </StackPanel>
     1         private async void Button_Click(object sender, RoutedEventArgs e)
     2         {
     3             //建立WebRequest对象
     4             var request = HttpWebRequest.Create("http://localhost:7080/index.ashx");
     5             //设置Method类型为GET/POST
     6             request.Method = "POST";
     7             //设置请求Cookie
     8             request.Headers["Cookie"] = "cookie_key1=CookieValue1;cookie_key2=CookieValue2";
     9             //设置请求UserAgent为常用Chrome代理
    10             request.Headers["User-Agent"] = "Mozilla/5.0(Windows NT 6.3;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/41.0.2243.0 safari/537.36";
    11             //设置请求身份验证网络凭据,用于网络身份验证
    12             //request.Credentials = new NetworkCredential("111", "2222");
    13             var bs = Encoding.UTF8.GetBytes("123:321");
    14             request.Headers["Authorization"] = string.Format("Basic{0}", Convert.ToBase64String(bs, 0, bs.Length));
    15 
    16             //设置请求提交格式
    17             request.ContentType = "application/x-www-form-urlencode";
    18             //待发送的数据 格式与QueryString格式相同
    19             var sendString = string.Format("txt1={0}&txt2={1}&txt3=(2)", txt1.Text, txt2.Text, txt3.Text);
    20             //转换成字节数组用于发送
    21             var buffer = Encoding.UTF8.GetBytes(sendString);
    22             //设置发送请求流
    23             using (var stream = await request.GetRequestStreamAsync())
    24             {
    25                 //写到请求体中
    26                 stream.Write(buffer, 0, buffer.Length);
    27             }
    28 
    29             //发送请求,获取服务端响应
    30             var response = await request.GetResponseAsync();
    31             using (var stream = response.GetResponseStream())
    32             {
    33                 using (var reader = new StreamReader(stream))
    34                 {
    35                     var result = await reader.ReadToEndAsync();
    36                 }
    37             }
    38         }
  • 相关阅读:
    linux初始密码Mysql
    lamp整个打包
    模拟小球碰撞后返回
    Linux图形界面卡死
    非模态对话框
    菜单
    键盘消息简单示例
    菜单练习
    模态对话框练习
    阶段知识整合(画笔,画刷,字体)
  • 原文地址:https://www.cnblogs.com/includeling/p/4598803.html
Copyright © 2011-2022 走看看