zoukankan      html  css  js  c++  java
  • WebRequest

    1  webrequest 是什么:编程方式模拟web请求,利用webrequest可以实现 相当于一个浏览器请求一个网页的效果,可以属性上的自我控制

    官方解释

    WebRequest 是 .NET Framework 的请求/响应模型的 abstract 基类,用于访问 Internet 数据。使用该请求/响应模型的应用程序可以用协议不可知的方式从 Internet 请求数据,在这种方式下,应用程序处理 WebRequest 类的实例,而协议特定的子类则执行请求的具体细节。

    请求从应用程序发送到某个特定的 URI,如服务器上的网页。URI 从一个为应用程序注册的 WebRequest 子代列表中确定要创建的适当子类。注册 WebRequest 子代通常是为了处理某个特定的协议(如 HTTP 或 FTP),但是也可以注册它以处理对特定服务器或服务器上的路径的请求。

    请求 ------>相应请求----->得到回复流

    请求可以设置属性,控制请求的效果,比如 请求的方式,(post,get 等等)请求的IP,请求的http(消息头.请求的消息体),长度.编码方式 等等.

    默认是get 请求.post 和get 有点区别. post 需要先 创建写入数据的GetRequestStream()

    post 请求

    var request = (HttpWebRequest)WebRequest.Create(Url);
                        request.Method = "POST";
                        request.ContentType = "application/json";
                        request.ContentLength = Encoding.UTF8.GetByteCount(postDataStr);
                        var myRequestStream = request.GetRequestStream();
                        var myStreamWriter = new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
                        myStreamWriter.Write(postDataStr);
                        myStreamWriter.Close();
                        var response = (HttpWebResponse)request.GetResponse();
                        if (response.StatusCode != HttpStatusCode.OK)
                        {
                            continue;
                        }
                        var myResponseStream = response.GetResponseStream();
                        var myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                        retString = myStreamReader.ReadToEnd();
                        if (response != null)
                        {
                            response.Close();
                        }
                        myStreamReader.Close();

    默认的Get

    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://www.baidu.com");
              
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                StreamReader stream = new StreamReader(response.GetResponseStream());

    当然 还有许多东西 可以设置

  • 相关阅读:
    《闲扯Redis十》Redis 跳跃表的结构实现
    《闲扯Redis九》Redis五种数据类型之Set型
    《闲扯Redis八》Redis字典的哈希表执行Rehash过程分析
    《闲扯Redis七》Redis字典结构的底层实现
    《闲扯Redis六》Redis五种数据类型之Hash型
    js定时器为什么是不精确的
    单页面应用的优缺点(SPA)
    怎么减少http请求次数
    animation 和 transition 的区别
    akka-typed(9)
  • 原文地址:https://www.cnblogs.com/jiaofu2012/p/3525062.html
Copyright © 2011-2022 走看看