這篇文章將為大家詳細講解有關C#中的HttpWebRequest類怎么使用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
HttpWebRequest 是一個Http 請求類,繼承于 WebRequest。
WebRequest 是一個抽象類,能夠對統一資源標識符 (URI) 發出請求。
WebRequest 有以下派生類:
System.IO.Packaging.PackWebRequest
System.Net.FileWebRequest
System.Net.FtpWebRequest
System.Net.HttpWebRequest
使用時
using System.Net;
以下是實例化方法,使用 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://
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) |
使用 WebSponse 對象的 GetResponseStream() 方法獲取數據流
string Url = "https://www.whuanle.cn:443"; WebRequest wReq = WebRequest.Create(Url); WebResponse wResp = wReq.GetResponse(); System.IO.Stream respStream = wResp.GetResponseStream();
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類怎么使用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。