• 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());

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

  • 相关阅读:
    重置mysql数据库密码
    windows下IIS+PHP解决大文件上传500错问题
    ecmobile中IOS版本中界面文字不显示的解决
    linux下重置mysql的root密码
    nginx下rewrite参数超过9个的解决方法
    android模拟器停在Waiting for HOME解决方案
    android模拟器没法通过localhost访问本地服务器的解决
    zend studio导入svn项目后不能代码提示的解决
    排序(1)

  • 原文地址:https://www.cnblogs.com/jiaofu2012/p/3525062.html
Copyright © 2020-2023  润新知