C#中的HttpWebRequest類用法詳解
HttpWebRequest 是一個Http 請求類,繼承于 WebRequest。
WebRequest 是一個抽象類,能夠對統(tǒng)一資源標識符 (URI) 發(fā)出請求。
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 字符串,網(wǎng)址前面必須加上 Http 協(xié)議類型。
可以是
- 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 是一個靜態(tài)方法
public static WebRequest Create(string requestUriString);
public static WebRequest Create(Uri requestUri);
public static WebRequest CreateDefault(Uri requestUri);所以,創(chuàng)建HttpWebRequest 實例時,這樣創(chuàng)建:
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) | 創(chuàng)建一個對象,該對象包含生成用于與遠程對象進行通信的代理所需的全部相關信息。 (Inherited from MarshalByRefObject) |
| Dispose() | 釋放 WebResponse 對象使用的非托管資源。 |
| Dispose(Boolean) | 釋放由 WebResponse 對象使用的非托管資源,并可根據(jù)需要釋放托管資源。 |
| Equals(Object) | 確定指定的對象是否等于當前對象。 (Inherited from Object) |
| GetHashCode() | 作為默認哈希函數(shù)。 (Inherited from Object) |
| GetLifetimeService() | 檢索控制此實例的生存期策略的當前生存期服務對象。 (Inherited from MarshalByRefObject) |
| GetObjectData(SerializationInfo, StreamingContext) | 使用序列化目標對象所需的數(shù)據(jù)填充 SerializationInfo。 |
| GetResponseStream() | 當在子類中重寫時,從 Internet 資源返回數(shù)據(jù)流。 |
| GetType() | 獲取當前實例的 Type。 (Inherited from Object) |
| InitializeLifetimeService() | 獲取生存期服務對象來控制此實例的生存期策略。 (Inherited from MarshalByRefObject) |
| MemberwiseClone() | 創(chuàng)建當前 Object 的淺表副本。 (Inherited from Object) |
| MemberwiseClone(Boolean) | 創(chuàng)建當前 MarshalByRefObject 對象的淺表副本。 (Inherited from MarshalByRefObject) |
| ToString() | 返回表示當前對象的字符串。 (Inherited from Object) |
3,獲取結果
使用 WebSponse 對象的 GetResponseStream() 方法獲取數(shù)據(jù)流
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 等對象所有的方法、屬性等。
地址:http://www.dbjr.com.cn/article/234688.htm
到此這篇關于C#中的HttpWebRequest類用法的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
利用Aspose.Word控件實現(xiàn)Word文檔的操作
偶然一次機會,一個項目的報表功能指定需要導出為Word文檔,因此尋找了很多篇文章,不過多數(shù)介紹的比較簡單一點,于是也參考了官方的幫助介紹,終于滿足了客戶的需求。下面我由淺入深來介紹這個控件在實際業(yè)務中的使用過程吧2013-05-05
C# 通過NI-VISA操作Tektronix TBS 2000B系列示波器的實現(xiàn)步驟
這篇文章主要介紹了C# 通過NI-VISA操作Tektronix TBS 2000B系列示波器的實現(xiàn)步驟,幫助大家更好的理解和學習使用c#,感興趣的朋友可以了解下2021-02-02
C#中實現(xiàn)輸入漢字獲取其拼音(漢字轉拼音)的2種方法
這篇文章主要介紹了C#中實現(xiàn)輸入漢字獲取其拼音(漢字轉拼音)的2種方法,本文分別給出了使用微軟語言包、手動編碼實現(xiàn)兩種實現(xiàn)方式,需要的朋友可以參考下2015-01-01

