千家信息网

C#中的HttpWebRequest类怎么使用

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,这篇文章将为大家详细讲解有关C#中的HttpWebRequest类怎么使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HttpWebRequest 是一个Http
千家信息网最后更新 2025年01月19日C#中的HttpWebRequest类怎么使用

这篇文章将为大家详细讲解有关C#中的HttpWebRequest类怎么使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

HttpWebRequest 是一个Http 请求类,继承于 WebRequest。

WebRequest 是一个抽象类,能够对统一资源标识符 (URI) 发出请求。

WebRequest 有以下派生类:

  • System.IO.Packaging.PackWebRequest

  • System.Net.FileWebRequest

  • System.Net.FtpWebRequest

  • System.Net.HttpWebRequest

使用时

using System.Net;

1,HttpWebRequest 实例化

以下是实例化方法,使用 visual studio 编写代码时,会提示 可以简化代码,原因下面说

string url = "http://baidu.com";            HttpWebRequest httpWeb = (HttpWebRequest)HttpWebRequest.Create(url);

HttpWebRequest 对应的是 URL,所以其连接字符串必须是 有效的 HTTP 字符串,网址前面必须加上 Http 协议类型。

可以是

  • http://

  • https://

可以加端口

http://baidu.com:666

也可以是IP,但也要加上 http 头和端口。

HttpWebRequest 对象实例化,一般不直接new。而是使用.Create 方法返回一个 WebRequest 对象。

HttpWebRequest httpWeb = (HttpWebRequest)WebRequest.Create("https://www.whuanle.cn:443");

注意下面两个方法:

  • HttpWebRequest.Create

  • WebRequest.Create

Cretate 返回的都是 WebRequest 对象,因为 Create 是一个静态方法

public static WebRequest Create(string requestUriString);        public static WebRequest Create(Uri requestUri);        public static WebRequest CreateDefault(Uri requestUri);

所以,创建HttpWebRequest 实例时,这样创建:

HttpWebRequest httpWeb = (HttpWebRequest)WebRequest.Create("https://www.whuanle.cn:443");

HttpWebRequest 支持 GET 和 POST 两种方式进行请求,

设置方法

HttpWebRequest httpWeb = (HttpWebRequest)WebRequest.Create("https://www.whuanle.cn:443");            httpWeb.Method = "GET";

WebRequest 的请求类型。

  • http://

  • https://

  • ftp://

  • file://

2,GetResponse 获取请求结果

HttpWebRequest 对象 使用 .GetResponse() 方法, 获取返回结果,.GetResponse() 返回的是一个 WebResponse 对象。

WebResponse 对象的方法

Close()

当由子类重写时,将关闭响应流。

CreateObjRef(Type)

创建一个对象,该对象包含生成用于与远程对象进行通信的代理所需的全部相关信息。

(Inherited from MarshalByRefObject)
Dispose()

释放 WebResponse 对象使用的非托管资源。

Dispose(Boolean)

释放由 WebResponse 对象使用的非托管资源,并可根据需要释放托管资源。

Equals(Object)

确定指定的对象是否等于当前对象。

(Inherited from Object)
GetHashCode()

作为默认哈希函数。

(Inherited from Object)
GetLifetimeService()

检索控制此实例的生存期策略的当前生存期服务对象。

(Inherited from MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)

使用序列化目标对象所需的数据填充 SerializationInfo。

GetResponseStream()

当在子类中重写时,从 Internet 资源返回数据流。

GetType()

获取当前实例的 Type。

(Inherited from Object)
InitializeLifetimeService()

获取生存期服务对象来控制此实例的生存期策略。

(Inherited from MarshalByRefObject)
MemberwiseClone()

创建当前 Object 的浅表副本。

(Inherited from Object)
MemberwiseClone(Boolean)

创建当前 MarshalByRefObject 对象的浅表副本。

(Inherited from MarshalByRefObject)
ToString()

返回表示当前对象的字符串。

(Inherited from Object)

3,获取结果

使用 WebSponse 对象的 GetResponseStream() 方法获取数据流

string Url = "https://www.whuanle.cn:443";                WebRequest wReq = WebRequest.Create(Url);                WebResponse wResp = wReq.GetResponse();                System.IO.Stream respStream = wResp.GetResponseStream();

4,获取流信息

string Url = "https://www.whuanle.cn:443";                WebRequest wReq = WebRequest.Create(Url);                WebResponse wResp = wReq.GetResponse();                System.IO.Stream respStream = wResp.GetResponseStream();                using (System.IO.StreamReader reader = new System.IO.StreamReader(respStream, Encoding.UTF8))                {                    string a = "";                    while ((a = reader.ReadLine()) != null)                    {                        Console.WriteLine(a);                    }                    return reader.ReadToEnd();                }

上面是一个获取流的例子,以 UTF8 编码输出流,以行读取。

下面是另一个方法

                string Url = "https://www.whuanle.cn:443";                WebRequest wReq = WebRequest.Create(Url);                WebResponse wResp = wReq.GetResponse();                System.IO.Stream respStream = wResp.GetResponseStream();                using (System.IO.StreamReader reader = new System.IO.StreamReader(respStream, Encoding.UTF8))                {                    string str = reader.ReadToEnd();                    Console.WriteLine(str);                }

使用 reader.ReadToEnd() 可以一次性从流中读取所有的字符。

关于"C#中的HttpWebRequest类怎么使用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

对象 方法 实例 资源 字符 存期 字符串 数据 篇文章 结果 托管 C# 代码 信息 副本 子类 数据流 更多 端口 策略 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何创建课题组共用的文献数据库 网络安全记录会议内容 南通企业网络安全准入控制报价 软件开发部署注意事项 软件开发的人事部门很强硬 软件开发厂的工业因素 橘子端apex哪个服务器不卡 svn服务器 linux 初中网络安全课教案 免费 软件开发实验报告山东建筑大学 中学生网络安全案例及分析 北京界剑网络技术有限公司 外文搜索用什么数据库 深圳每天惠软件开发有限公司 用什么服务器查ip地址 轻量服务器可以远程桌面吗 彭泽软件开发项目管理 第三方财经数据库 软件开发工程师 后端 连云港市网络安全优秀实践案例 软件开发和大数据 网络技术培训的学校 珠海格力校招软件开发待遇 陕西5g软件开发培训中专学校 服务器端怎么搭建 应用软件开发选课系统 河南电力应急软件开发创意 生态环境数据库 广州单据外贸软件开发公司 上海进口网络技术开发优缺点
0