您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“C#中的HttpWebRequest類怎么用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“C#中的HttpWebRequest類怎么用”這篇文章吧。
提供 WebRequest 類的 HTTP 特定的實現。
繼承層次結構 System.Object → System.MarshalByRefObject → System.Net.WebRequest → System.Net.HttpWebRequest
。
命名空間:System.Net
; 程序集:System
(在 System.dll 中)
C#語法:
[SerializableAttribute]
public class HttpWebRequest : WebRequest, ISerializable
HttpWebRequest 類型公開以下成員。
名稱 | 說明 |
---|---|
HttpWebRequest() | 已過時。初始化 HttpWebRequest 類的新實例。 |
HttpWebRequest(SerializationInfo, StreamingContext) | 已過時。從 SerializationInfo和 StreamingContext 類的指定實例初始化 HttpWebRequest 類的新實例。 |
名稱 | 說明 |
---|---|
Accept | 獲取或設置 Accept HTTP 標頭的值。 |
Address | 獲取實際響應請求的 Internet 資源的統一資源標識符 (URI)。 |
AllowAutoRedirect | 獲取或設置一個值,該值指示請求是否應跟隨重定向響應。 |
AllowReadStreamBuffering | 獲取或設置一個值,該值指示是否對從 Internet 資源接收的數據進行緩沖處理。 |
AllowWriteStreamBuffering | 獲取或設置一個值,該值指示是否對發送到 Internet 資源的數據進行緩沖處理。 |
AuthenticationLevel | 獲取或設置用于此請求的身份驗證和模擬的級別。 (繼承自 WebRequest。) |
AutomaticDecompression | 獲取或設置所使用的解壓縮類型。 |
CachePolicy | 獲取或設置此請求的緩存策略。 (繼承自 WebRequest。) |
ClientCertificates | 獲取或設置與此請求關聯的安全證書集合。 |
Connection | 獲取或設置 Connection HTTP 標頭的值。 |
ConnectionGroupName | 獲取或設置請求的連接組的名稱。 (重寫 WebRequest.ConnectionGroupName。) |
ContentLength | 獲取或設置 Content-lengthHTTP 標頭。 (重寫 WebRequest.ContentLength。) |
ContentType | 獲取或設置 Content-type HTTP 標頭的值。 (重寫 WebRequest.ContentType。) |
ContinueDelegate | 獲取或設置當從 Internet 資源接收到 HTTP 100 持續響應時調用的委托方法。 |
ContinueTimeout | 獲取或設置在接收到來自服務器的 100 次連續響應之前要等待的超時(以毫秒為單位)。 |
CookieContainer | 獲取或設置與此請求關聯的 cookie。 |
CreatorInstance | 已過時。當在子類中重寫時,獲取從 IWebRequestCreate 類派生的工廠對象,該類用于創建為生成對指定 URI 的請求而實例化的 WebRequest。 (繼承自 WebRequest。) |
Credentials | 獲取或設置請求的身份驗證信息。 (重寫 WebRequest.Credentials。) |
Date | 獲取或設置要在 HTTP 請求中使用的 Date HTTP 標頭值。 |
DefaultCachePolicy | 獲取或設置此請求的默認緩存策略。 |
DefaultMaximumErrorResponseLength | 獲取或設置 HTTP 錯誤響應的默認最大長度。 |
DefaultMaximumResponseHeadersLength | 獲取或設置 MaximumResponseHeadersLength 屬性的默認值。 |
Expect | 獲取或設置 Expect HTTP 標頭的值。 |
HaveResponse | 獲取一個值,該值指示是否收到了來自 Internet 資源的響應。 |
Headers | 指定構成 HTTP 標頭的名稱/值對的集合。 (重寫 WebRequest.Headers。) |
Host | 獲取或設置要在 HTTP 請求中獨立于請求 URI 使用的 Host 標頭值。 |
IfModifiedSince | 獲取或設置 If-Modified-Since HTTP 標頭的值。 |
ImpersonationLevel | 獲取或設置當前請求的模擬級別。 (繼承自 WebRequest。) |
KeepAlive | 獲取或設置一個值,該值指示是否與 Internet 資源建立持久性連接。 |
MaximumAutomaticRedirections | 獲取或設置請求將跟隨的重定向的最大數目。 |
MaximumResponseHeadersLength | 獲取或設置響應標題允許的最大長度。 |
MediaType | 獲取或設置請求的媒體類型。 |
Method | 獲取或設置請求的方法。 (重寫 WebRequest.Method。) |
Pipelined | 獲取或設置一個值,該值指示是否通過管線將請求傳輸到 Internet 資源。 |
PreAuthenticate | 獲取或設置一個值,該值指示是否隨請求發送一個身份驗證標頭。 (重寫 WebRequest.PreAuthenticate。) |
ProtocolVersion | 獲取或設置用于請求的 HTTP 版本。 |
Proxy | 獲取或設置請求的代理信息。 (重寫 WebRequest.Proxy。) |
ReadWriteTimeout | 獲取或設置寫入或讀取流時的超時(以毫秒為單位)。 |
Referer | 獲取或設置 Referer HTTP 標頭的值。 |
RequestUri | 獲取請求的原始統一資源標識符 (URI)。 (重寫 WebRequest.RequestUri。) |
SendChunked | 獲取或設置一個值,該值指示是否將數據分段發送到 Internet 資源。 |
ServerCertificateValidationCallback | 獲取或設置用于驗證服務器證書的回調函數。 |
ServicePoint | 獲取用于請求的服務點。 |
SupportsCookieContainer | 獲取一個值,該值指示請求是否為 CookieContainer 提供支持。 |
Timeout | 獲取或設置 GetResponse 和 GetRequestStream 方法的超時值(以毫秒為單位)。 (重寫 WebRequest.Timeout。) |
TransferEncoding | 獲取或設置 Transfer-encoding HTTP 標頭的值。 |
UnsafeAuthenticatedConnectionSharing | 獲取或設置一個值,該值指示是否允許經過高速 NTLM 身份驗證的連接共享。 |
UseDefaultCredentials | 獲取或設置一個 Boolean 值,該值控制默認憑據是否隨請求一起發送。 (重寫 WebRequest.UseDefaultCredentials。) |
UserAgent | 獲取或設置 User-agent HTTP 標頭的值。 |
名稱 | 說明 |
---|---|
Abort | 取消對 Internet 資源的請求。 (重寫 WebRequest.Abort()。) |
AddRange(Int32) | 向請求添加從請求數據的開始處或結束處的特定范圍的字節范圍標頭。 |
AddRange(Int64) | 向請求添加從請求數據的開始處或結束處的特定范圍的字節范圍標頭。 |
AddRange(Int32, Int32) | 向請求添加指定范圍的字節范圍標頭。 |
AddRange(Int64, Int64) | 向請求添加指定范圍的字節范圍標頭。 |
AddRange(String, Int32) | 向請求添加從請求數據的開始處或結束處計算的特定范圍的 Range 標頭。 |
AddRange(String, Int64) | 向請求添加從請求數據的開始處或結束處計算的特定范圍的 Range 標頭。 |
AddRange(String, Int32, Int32) | 向請求添加指定范圍的范圍標頭。 |
AddRange(String, Int64, Int64) | 向請求添加指定范圍的范圍標頭。 |
BeginGetRequestStream | 開始對用來寫入數據的 Stream 對象的異步請求。 (重寫 WebRequest.BeginGetRequestStream(AsyncCallback, Object)。) |
BeginGetResponse | 開始對 Internet 資源的異步請求。 (重寫 WebRequest.BeginGetResponse(AsyncCallback, Object)。) |
CreateObjRef | 創建一個對象,該對象包含生成用于與遠程對象進行通信的代理所需的全部相關信息。 (繼承自 MarshalByRefObject。) |
EndGetRequestStream(IAsyncResult) | 結束對用于寫入數據的 Stream 對象的異步請求。 (重寫 WebRequest.EndGetRequestStream(IAsyncResult)。) |
EndGetRequestStream(IAsyncResult,TransportContext) | 結束對用于寫入數據的 Stream 對象的異步請求,并輸出與該流關聯的 TransportContext。 |
EndGetResponse | 結束對 Internet 資源的異步請求。 (重寫 WebRequest.EndGetResponse(IAsyncResult)。) |
Equals(Object) | 確定指定的對象是否等于當前對象。 (繼承自 Object。) |
Finalize | 允許對象在“垃圾回收”回收之前嘗試釋放資源并執行其他清理操作。 (繼承自 Object。) |
GetHashCode | 作為默認哈希函數。 (繼承自 Object。) |
GetLifetimeService | 檢索控制此實例的生存期策略的當前生存期服務對象。 (繼承自 MarshalByRefObject。) |
GetObjectData | 基礎結構。使用序列化目標對象所需的數據填充 SerializationInfo。 (重寫 WebRequest.GetObjectData(SerializationInfo, StreamingContext)。) |
GetRequestStream() | 獲取用于寫入請求數據的 Stream 對象。 (重寫 WebRequest.GetRequestStream()。) |
GetRequestStream(TransportContext) | 獲取用于寫入請求數據的 Stream 對象,并輸出與該流關聯的 TransportContext。 |
GetRequestStreamAsync | 當在子類中被重寫時,將用于寫入數據的 Stream 作為異步操作返回到 Internet 資源。 (繼承自 WebRequest。) |
GetResponse | 返回來自 Internet 資源的響應。 (重寫 WebRequest.GetResponse()。) |
GetResponseAsync | 當在子類中被重寫時,將作為異步操作返回對 Internet 請求的響應。 (繼承自 WebRequest。) |
GetType | 獲取當前實例的 Type。 (繼承自 Object。) |
InitializeLifetimeService | 獲取控制此實例的生存期策略的生存期服務對象。 (繼承自 MarshalByRefObject。) |
MemberwiseClone() | 創建當前 Object 的淺表副本。 (繼承自 Object。) |
MemberwiseClone(Boolean) | 創建當前 MarshalByRefObject 對象的淺表副本。 (繼承自 MarshalByRefObject。) |
ToString | 返回表示當前對象的字符串。 (繼承自 Object。) |
名稱 | 說明 |
---|---|
ISerializable.GetObjectData | 基礎結構。使用將目標對象序列化所需的數據填充 SerializationInfo。 |
HttpWebRequest類對WebRequest中定義的屬性和方法提供支持,也對使用戶能夠直接與使用 HTTP 的服務器交互的附加屬性和方法提供支持。
不要使用HttpWebRequest 構造函數。使用 WebRequest.Create方法初始化新的 HttpWebRequest 對象。如果統一資源標識符 (URI) 的方案是 http:// 或 https://,則 Create 返回 HttpWebRequest 對象。
GetResponse方法向RequestUri屬性中指定的資源發出同步請求并返回包含該響應的HttpWebResponse。可以使用 BeginGetResponse 和 EndGetResponse 方法對資源發出異步請求。
當要向資源發送數據時,GetRequestStream 方法返回用于發送數據的 Stream 對象。BeginGetRequestStream和EndGetRequestStream方法提供對發送數據流的異步訪問。
對于使用 HttpWebRequest 的客戶端驗證身份,客戶端證書必須安裝在當前用戶的“我的證書”存儲區中。
如果在訪問資源時發生錯誤,則 HttpWebRequest 類將引發 WebException。WebException.Status 屬性包含指示錯誤源的 WebExceptionStatus 值。 當 WebException.Status 為 WebExceptionStatus.ProtocolError 時,Response 屬性包含從資源接收的 HttpWebResponse。
HttpWebRequest將發送到 Internet 資源的公共 HTTP 標頭值公開為屬性,由方法或系統設置;下表包含完整列表。可以將 Headers 屬性中的其他標頭設置為名稱/值對。注意,服務器和緩存在請求期間可能會更改或添加標頭。
下表列出了由屬性或方法設置或由系統設置的 HTTP 標頭。
Header | 設置方 |
---|---|
Accept | 由 Accept 屬性設置。 |
Connection | 由 Connection 屬性和 KeepAlive 屬性設置。 |
Content-Length | 由 ContentLength 屬性設置。 |
Content-Type | 由 ContentType 屬性設置。 |
Expect | 由 Expect 屬性設置。 |
日期 | 由系統設置為當前日期。 |
主機 | 由系統設置為當前主機信息。 |
If-Modified-Since | 由 IfModifiedSince 屬性設置。 |
范圍 | 由 AddRange 方法設置。 |
Referer | 由 Referer 屬性設置。 |
Transfer-Encoding | 由 TransferEncoding 屬性設置(SendChunked 屬性必須為 true)。 |
User-Agent | 由 UserAgent 屬性設置。 |
說明 |
---|
HttpWebRequest 自動注冊。 使用以 http:// 或 https:// 開頭的 URI 之前,不需要調用 RegisterPrefix 方法來注冊 System.Net.HttpWebRequest。 |
本地計算機或應用程序配置文件可能指定使用默認代理。 如果指定了 Proxy 屬性,則 Proxy 屬性中的代理設置會重寫本地計算機或應用程序配置文件,并且 HttpWebRequest 實例將實用指定的代理設置。 如果配置文件中未指定代理并且未指定 Proxy 屬性,則 HttpWebRequest 類使用從本地計算機上的 Internet Explorer 中繼承的代理設置。 如果 Internet Explorer 中沒有代理設置,請求會直接發送到服務器。
HttpWebRequest 類分析從 Internet Explorer 繼承的且包含通配符的代理忽略列表時會與 Internet Explorer 直接分析忽略列表不同。 例如,HttpWebRequest 類將來自 Internet Explorer 的其中包含“nt*”的忽略列表分析為正則表達式“nt.$”。 此行為不同于 Internet Explorer 的本機行為。 因此 URL“http://intxxxxx”將忽略使用 HttpWebRequest 類的代理,但它不會忽略使用 Internet Explorer 的代理。
說明 |
---|
Framework 在創建 SSL 會話時緩存這些會話,如果可能,還嘗試對新請求重用緩存的會話。 嘗試重用 SSL 會話時,該框架將使用 ClientCertificates 的第一個元素(如果有);如果 ClientCertificates 為空,則將嘗試重用匿名會話。 |
說明 |
---|
為安全起見,默認情況下禁用 Cookie。 如果您希望使用 Cookie,請使用 CookieContainer 屬性啟用 Cookie。 |
示例
下面的代碼示例為 URI http://www.contoso.com/. 創建 HttpWebRequest。
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/");
以上是“C#中的HttpWebRequest類怎么用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。