返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C#中的HttpWebRequest类用法详解
  • 122
分享到

C#中的HttpWebRequest类用法详解

2024-04-02 19:04:59 122人浏览 独家记忆
摘要

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

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://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() 可以一次性从流中读取所有的字符。

推荐一位其他人的文章,里面列出了WebRequest、WebResponse 等对象所有的方法、属性等。

地址:https://www.jb51.net/article/234688.htm

到此这篇关于C#中的HttpWebRequest类用法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: C#中的HttpWebRequest类用法详解

本文链接: https://lsjlt.com/news/162576.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C#中的HttpWebRequest类用法详解
    HttpWebRequest 是一个Http 请求类,继承于 WebRequest。 WebRequest 是一个抽象类,能够对统一资源标识符 (URI) 发出请求。 WebRequ...
    99+
    2024-04-02
  • C#中的HttpWebRequest类怎么用
    这篇文章主要为大家展示了“C#中的HttpWebRequest类怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C#中的HttpWebRequest类怎么用”这篇文章吧。提供 WebRequ...
    99+
    2023-06-26
  • C#中的HttpWebRequest类介绍
    提供 WebRequest 类的 HTTP 特定的实现。 继承层次结构 System.Object → System.MarshalByRefObject → &...
    99+
    2024-04-02
  • C#中的HttpWebRequest类怎么使用
    这篇文章将为大家详细讲解有关C#中的HttpWebRequest类怎么使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。HttpWebRequest 是一个Http 请求类,继承于 WebRequest。...
    99+
    2023-06-26
  • C#中backgroundWorker类的用法详解
    BackgroundWorker类是C#中一个非常常用的多线程类,它可以在后台运行一个操作,并且可以与UI线程进行交互。下面是Bac...
    99+
    2023-08-14
    C#
  • C++ stringstream类用法详解
    本文主要介绍 C++ 中 stringstream 类的常见用法。 1 概述 <sstream> 定义了三个类:istringstream、ostringstream 和...
    99+
    2024-04-02
  • C#DirectoryInfo类用法详解
    DirectoryInfo类是System.IO命名空间的一部分。它用于创建,删除和移动目录。它提供了执行与目录和子目录相关的操作的方法。这是一个密封的类,所以不能继承它。 Dire...
    99+
    2024-04-02
  • C++static详解,类中的static用法说明
    目录C++static详解,类中static用法static特点:用来控制存储方式和可见性类中的static关键字什么时候用static?为什么要引入static?c++中stati...
    99+
    2024-04-02
  • 详解C#中Helper类的使用
    目录使用背景使用方法1.引用CSRedisCore2.增加helper类代码3.使用4.说明结语使用背景 项目中用户频繁访问数据库会导致程序的卡顿,甚至堵塞。使用缓存可以有效的降低用...
    99+
    2024-04-02
  • C#中的Hashtable 类使用详解
    目录一:Hashtable 类简单说明二:Hashtable 类的构造函数三:Hashtable 类的属性四:Hashtable 类的常用方法1: Hashtable.Add(Obj...
    99+
    2024-04-02
  • C#中ArrayList 类的使用详解
    目录一:ArrayList 类简单说明二:ArrayList 类的构造函数三:ArrayList 类的属性1:使用举例说明四:ArrayList 类的常用方法1: AddRange(...
    99+
    2024-04-02
  • C#中ArrayList 类的使用详解
    ArrayList是C#中的一种动态数组,它可以存储任何类型的对象。以下是ArrayList类的使用详解:1. 导入命名空间:在使用ArrayList类之前,需要在文件的开头导入System.Collections命名空间。2. 创建A...
    99+
    2023-08-11
    C#
  • 详解C++中存储类的使用
    目录auto 存储类register 存储类static 存储类extern 存储类mutable 存储类存储类定义 C++ 程序中变量/函数的范围(可见性)和生命周期。这些说明符放...
    99+
    2022-12-28
    C++存储类使用 C++存储类
  • C#中类的使用教程详解
    目录实例化类成员访问赋值方法方法调用方法重载在对类访问使用时,常用到的有访问类的成员、方法。 实例化 在对类进行访问时,需要将类进行实例化。并产生一个对象。可以使用关键字new来实现...
    99+
    2024-04-02
  • C#中的类继承详解
    目录前言类的继承注意事项寄语总结前言 在日常的程序编码工作中,我们的最终目标是完成公司交给自己的开发任务,核心目标是写出好代码。 那么什么是好代码? 高内聚,低耦合 想必从事编码工作...
    99+
    2024-04-02
  • C++中的memset用法详解
    memset简介 memset是一个初始化函数,作用是将某一块内存中的全部设置为指定的值。 void *memset(void *s, int c, size_t n); s指向要...
    99+
    2023-02-04
    memset的用法 c++ memset用法
  • c++中set的用法详解
    c++kquote>set 是一种存储不重复且有序元素的容器,元素的顺序由比较函数决定。创建 set 使用 set 语法,插入元素用 insert() 方法,查找元素用 find(...
    99+
    2024-05-01
    c++
  • C++中的类的大小详解
    目录一、普通类的大小二、空类的大小三、自动填充类或者结构体的大小总结一、普通类的大小 #include<iostream> using namespace std; c...
    99+
    2024-04-02
  • C#元组类型ValueTuple用法详解
    System.Tuple 类型是在.NET 4.0中引入的,但是有两个明显的缺点:(1) Tuple 类型是引用类型。(2) 没有构造函数支持。 为了解决这些问题,C# 7...
    99+
    2024-04-02
  • .NETCore中的HttpClientFactory类用法详解
    一、HttpClient使用 在C#中,如果我们需要向某特定的URL地址发送Http请求的时候,通常会用到HttpClient类。会将HttpClient包裹在using内部进行声明...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作