• WebRequest 对象的使用


    内容比较简单,直接看代码的注释即可。

    // 待请求的地址
    string url = "http://www.qiandabao.com";
                 
    // 创建 WebRequest 对象,WebRequest 是抽象类,定义了请求的规定,
    // 可以用于各种请求,例如:Http, Ftp 等等。
    // HttpWebRequest 是 WebRequest 的派生类,专门用于 Http
    System.Net.HttpWebRequest request = System.Net.HttpWebRequest.Create(url) as System.Net.HttpWebRequest;
     
    // 请求的方式通过 Method 属性设置 ,默认为 GET
    // 可以将 Method 属性设置为任何 HTTP 1.1 协议谓词:GET、HEAD、POST、PUT、DELETE、TRACE 或 OPTIONS。
    request.Method = "POST";
     
    // 还可以在请求中附带 Cookie
    // 但是,必须首先创建 Cookie 容器
    request.CookieContainer = new System.Net.CookieContainer();
     
    System.Net.Cookie requestCookie = new System.Net.Cookie("Request", "RequestValue","/", "localhost");
    request.CookieContainer.Add(requestCookie);
     
    Console.WriteLine("请输入请求参数:");
     
    // 输入 POST 的数据.
    string inputData = Console.ReadLine();
     
    // 拼接成请求参数串,并进行编码,成为字节
    string postData = "firstone=" + inputData;
    ASCIIEncoding encoding = new ASCIIEncoding();
    byte[] byte1 = encoding.GetBytes(postData);
     
    // 设置请求的参数形式
    request.ContentType = "application/x-www-form-urlencoded";
     
    // 设置请求参数的长度.
    request.ContentLength = byte1.Length;
     
    // 取得发向服务器的流
    System.IO.Stream newStream = request.GetRequestStream();
     
    // 使用 POST 方法请求的时候,实际的参数通过请求的 Body 部分以流的形式传送
    newStream.Write(byte1, 0, byte1.Length);
     
    // 完成后,关闭请求流.
    newStream.Close();
     
    // GetResponse 方法才真的发送请求,等待服务器返回
    System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
     
    // 首先得到回应的头部,可以知道返回内容的长度或者类型
    Console.WriteLine("Content length is {0}", response.ContentLength);
    Console.WriteLine("Content type is {0}", response.ContentType);
     
    // 回应的 Cookie 在 Cookie 容器中
    foreach (System.Net.Cookie cookie in response.Cookies)
    {
        Console.WriteLine("Name: {0}, Value: {1}", cookie.Name, cookie.Value);
    }
    Console.WriteLine();
     
    // 然后可以得到以流的形式表示的回应内容
    System.IO.Stream receiveStream = response.GetResponseStream();    
     
    // 还可以将字节流包装为高级的字符流,以便于读取文本内容
    // 需要注意编码
    System.IO.StreamReader readStream = new System.IO.StreamReader(receiveStream, Encoding.UTF8);
     
    Console.WriteLine("Response stream received.");
    Console.WriteLine(readStream.ReadToEnd());
     
    // 完成后要关闭字符流,字符流底层的字节流将会自动关闭
    response.Close();
    readStream.Close();
  • 相关阅读:
    基于风险集成 Risk-Based
    基于消息(事件)集成 Message-Based/Event-Based
    如何保证系统测试的完备性?
    1.1 功能测试(功能)
    问:给你一个网站,你如何测试?
    问:你在测试中发现了一个bug,但是开发经理认为这不是一个bug,你应该怎样解决?
    4.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
    什么是 JavaConfig?
    Spring Boot 有哪些优点?
    .Redis中的常用命令哪些?
  • 原文地址:https://www.cnblogs.com/wolfocme110/p/4574717.html
Copyright © 2020-2023  润新知