当前位置:首页 » 《休闲阅读》 » 正文

C#中HttpWebRequest的用法

19 人参与  2024年04月02日 16:45  分类 : 《休闲阅读》  评论

点击全文阅读


前言

HttpWebRequest是一个常用的类,用于发送和接收HTTP请求。在C#中使用HttpWebRequest可以实现各种功能,包括发送GET和POST请求、处理Cookie、设置请求头、添加参数等。本文将深入介绍HttpWebRequest的用法,并给出一些常见的示例。
在这里插入图片描述


目录

前言1. 发送GET请求2. 发送POST请求3. 设置请求头和处理Cookie4. 添加参数和处理响应结论


1. 发送GET请求

使用HttpWebRequest发送GET请求非常简单,只需指定目标URL即可。以下是发送GET请求的示例代码:

using System;using System.IO;using System.Net;class Program{    static void Main()    {        string url = "https://www.example.com/api/data";                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);        request.Method = "GET";                HttpWebResponse response = (HttpWebResponse)request.GetResponse();                using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))        {            string responseData = streamReader.ReadToEnd();                        Console.WriteLine(responseData);        }    }}

上述代码中,首先通过WebRequest.Create方法创建一个HttpWebRequest实例,并指定目标URL。然后设置请求方法为GET,通过GetResponse方法发送请求并获取响应。最后通过StreamReader对象读取响应数据。

在这里插入图片描述

2. 发送POST请求

发送POST请求与发送GET请求类似,只需将请求方法设置为POST,并设置请求体的数据。以下是发送POST请求的示例代码:

using System;using System.IO;using System.Net;using System.Text;class Program{    static void Main()    {        string url = "https://www.example.com/api/data";        string requestData = "param1=value1&param2=value2";        byte[] byteData = Encoding.UTF8.GetBytes(requestData);        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);        request.Method = "POST";        request.ContentType = "application/x-www-form-urlencoded";        request.ContentLength = byteData.Length;        using (Stream requestStream = request.GetRequestStream())        {            requestStream.Write(byteData, 0, byteData.Length);        }        HttpWebResponse response = (HttpWebResponse)request.GetResponse();        using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))        {            string responseData = streamReader.ReadToEnd();            Console.WriteLine(responseData);        }    }}

上述代码中,首先将请求体的数据转换为字节数组,并设置请求方法为POST。然后设置Content-Type头为application/x-www-form-urlencoded,并设置请求体的长度。接着通过GetRequestStream方法获取请求流,并将请求数据写入请求流中。发送请求并获取响应的过程与发送GET请求相同。

在这里插入图片描述

3. 设置请求头和处理Cookie

HttpWebRequest还提供了一些方法和属性来设置请求头和处理Cookie。以下是设置请求头和处理Cookie的示例代码:

using System;using System.IO;using System.Net;class Program{    static void Main()    {        string url = "https://www.example.com/api/data";                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);        request.Method = "GET";                // 设置请求头        request.Headers["Authorization"] = "Bearer xxxxxxx";        request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36";                // 处理Cookie        request.CookieContainer = new CookieContainer();        request.CookieContainer.Add(new Uri(url), new Cookie("cookie1", "value1"));                HttpWebResponse response = (HttpWebResponse)request.GetResponse();                using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))        {            string responseData = streamReader.ReadToEnd();                        Console.WriteLine(responseData);        }    }}

上述代码中,使用request.Headers属性可以设置请求头的键值对。通过设置UserAgent属性可以伪装请求的浏览器标识。通过创建CookieContainer对象并使用Add方法添加Cookie来处理Cookie。

4. 添加参数和处理响应

使用HttpWebRequest发送请求时,可能需要添加一些参数和在接收到响应后进行处理。以下是添加参数和处理响应的示例代码:

using System;using System.IO;using System.Net;using System.Text;class Program{    static void Main()    {        string url = "https://www.example.com/api/data";        string requestData = "param1=value1&param2=value2";        byte[] byteData = Encoding.UTF8.GetBytes(requestData);        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);        request.Method = "POST";        request.ContentType = "application/x-www-form-urlencoded";        request.ContentLength = byteData.Length;        using (Stream requestStream = request.GetRequestStream())        {            requestStream.Write(byteData, 0, byteData.Length);        }        HttpWebResponse response = (HttpWebResponse)request.GetResponse();                // 处理响应        HttpStatusCode statusCode = response.StatusCode;        string statusDescription = response.StatusDescription;        using (StreamReader streamReader = new StreamReader(response.GetResponseStream()))        {            string responseData = streamReader.ReadToEnd();            Console.WriteLine(responseData);        }    }}

以上代码中,发送POST请求时添加了一些参数,然后获取响应的状态码、状态描述和响应数据。

结论

使用C#中的HttpWebRequest可以轻松发送和接收HTTP请求,实现各种功能。本文介绍了HttpWebRequest的用法,包括发送GET和POST请求、处理Cookie、设置请求头、添加参数等。可以根据需要进行灵活运用,实现更强大的HTTP请求功能。希望本文对你有所帮助!


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/89645.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 真千金伪装大学生在自家公司实习让狗爬后一口气看完_宋氏小林小姑娘高分神作_小说后续在线阅读_无删减免费完结_
  • 萧逸尘,楚璃,叶紫嫣爱恨决绝,此生不见番外(爱恨决绝,此生不见)TXT+后续+结局在线阅读
  • 假千金要交换人生?我抱着空间做首富爽文_苏木青赵景城虐心反转_小说后续在线阅读_无删减免费完结_
  • 温时雨谢远之续集(清风难渡无缘人)全本完整免费版_起点章节+后续(温时雨谢远之)
  • 订婚两个月后,未婚夫要摆脱包办婚姻精心打造_肖明宝宝宾客故事会_小说后续在线阅读_无删减免费完结_
  • 霍景琛,苏晚,林深昔年请深如海,终不敌薄凉附加(霍景琛,苏晚,林深)(昔年请深如海,终不敌薄凉)全本浏览阅读连载中
  • 新章速递汤安甯,白子奕,汤贝贝是什么小说(结婚十年,回归家庭的老婆在外有二胎了)完本阅读无广告(结婚十年,回归家庭的老婆在外有二胎了)
  • 娇牛马导师偷我论文99篇成功升博导,我让他牢底坐穿精校文本_周老师师姐师兄爽文_小说后续在线阅读_无删减免费完结_
  • 独家顾宇,罗薇:结局+番外精编之作(资助生装阔气,我可不参加)电子书畅享阅读
  • 宗门全员重生,小师妹摆烂不干了(君拂君芙蓉)_宗门全员重生,小师妹摆烂不干了
  • 成了高考状元后,我倒欠两百万完结txt_阿姨叶青江安TOP10_小说后续在线阅读_无删减免费完结_
  • 嫁绝嗣长官,好孕作精在七零躺赢小说(顾嘉宁)序章+全章阅读(嫁绝嗣长官,好孕作精在七零躺赢)最新章节

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1