溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中的HttpWebRequest類怎么使用

發布時間:2022-01-15 11:26:12 來源:億速云 閱讀:236 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關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類怎么使用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女