C#中的HttpWebRequest類介紹
提供 WebRequest 類的 HTTP 特定的實(shí)現(xiàn)。
繼承層次結(jié)構(gòu) System.Object → System.MarshalByRefObject → System.Net.WebRequest → System.Net.HttpWebRequest
。
命名空間:System.Net
; 程序集:System
(在 System.dll 中)
C#語(yǔ)法:
[SerializableAttribute]
public class HttpWebRequest : WebRequest, ISerializable
HttpWebRequest 類型公開(kāi)以下成員。
1、構(gòu)造函數(shù)
名稱 | 說(shuō)明 |
---|---|
HttpWebRequest() | 已過(guò)時(shí)。初始化 HttpWebRequest 類的新實(shí)例。 |
HttpWebRequest(SerializationInfo, StreamingContext) | 已過(guò)時(shí)。從 SerializationInfo和 StreamingContext 類的指定實(shí)例初始化 HttpWebRequest 類的新實(shí)例。 |
2、屬性
名稱 | 說(shuō)明 |
---|---|
Accept | 獲取或設(shè)置 Accept HTTP 標(biāo)頭的值。 |
Address | 獲取實(shí)際響應(yīng)請(qǐng)求的 Internet 資源的統(tǒng)一資源標(biāo)識(shí)符 (URI)。 |
AllowAutoRedirect | 獲取或設(shè)置一個(gè)值,該值指示請(qǐng)求是否應(yīng)跟隨重定向響應(yīng)。 |
AllowReadStreamBuffering | 獲取或設(shè)置一個(gè)值,該值指示是否對(duì)從 Internet 資源接收的數(shù)據(jù)進(jìn)行緩沖處理。 |
AllowWriteStreamBuffering | 獲取或設(shè)置一個(gè)值,該值指示是否對(duì)發(fā)送到 Internet 資源的數(shù)據(jù)進(jìn)行緩沖處理。 |
AuthenticationLevel | 獲取或設(shè)置用于此請(qǐng)求的身份驗(yàn)證和模擬的級(jí)別。 (繼承自 WebRequest。) |
AutomaticDecompression | 獲取或設(shè)置所使用的解壓縮類型。 |
CachePolicy | 獲取或設(shè)置此請(qǐng)求的緩存策略。 (繼承自 WebRequest。) |
ClientCertificates | 獲取或設(shè)置與此請(qǐng)求關(guān)聯(lián)的安全證書(shū)集合。 |
Connection | 獲取或設(shè)置 Connection HTTP 標(biāo)頭的值。 |
ConnectionGroupName | 獲取或設(shè)置請(qǐng)求的連接組的名稱。 (重寫 WebRequest.ConnectionGroupName。) |
ContentLength | 獲取或設(shè)置 Content-lengthHTTP 標(biāo)頭。 (重寫 WebRequest.ContentLength。) |
ContentType | 獲取或設(shè)置 Content-type HTTP 標(biāo)頭的值。 (重寫 WebRequest.ContentType。) |
ContinueDelegate | 獲取或設(shè)置當(dāng)從 Internet 資源接收到 HTTP 100 持續(xù)響應(yīng)時(shí)調(diào)用的委托方法。 |
ContinueTimeout | 獲取或設(shè)置在接收到來(lái)自服務(wù)器的 100 次連續(xù)響應(yīng)之前要等待的超時(shí)(以毫秒為單位)。 |
CookieContainer | 獲取或設(shè)置與此請(qǐng)求關(guān)聯(lián)的 cookie。 |
CreatorInstance | 已過(guò)時(shí)。當(dāng)在子類中重寫時(shí),獲取從 IWebRequestCreate 類派生的工廠對(duì)象,該類用于創(chuàng)建為生成對(duì)指定 URI 的請(qǐng)求而實(shí)例化的 WebRequest。 (繼承自 WebRequest。) |
Credentials | 獲取或設(shè)置請(qǐng)求的身份驗(yàn)證信息。 (重寫 WebRequest.Credentials。) |
Date | 獲取或設(shè)置要在 HTTP 請(qǐng)求中使用的 Date HTTP 標(biāo)頭值。 |
DefaultCachePolicy | 獲取或設(shè)置此請(qǐng)求的默認(rèn)緩存策略。 |
DefaultMaximumErrorResponseLength | 獲取或設(shè)置 HTTP 錯(cuò)誤響應(yīng)的默認(rèn)最大長(zhǎng)度。 |
DefaultMaximumResponseHeadersLength | 獲取或設(shè)置 MaximumResponseHeadersLength 屬性的默認(rèn)值。 |
Expect | 獲取或設(shè)置 Expect HTTP 標(biāo)頭的值。 |
HaveResponse | 獲取一個(gè)值,該值指示是否收到了來(lái)自 Internet 資源的響應(yīng)。 |
Headers | 指定構(gòu)成 HTTP 標(biāo)頭的名稱/值對(duì)的集合。 (重寫 WebRequest.Headers。) |
Host | 獲取或設(shè)置要在 HTTP 請(qǐng)求中獨(dú)立于請(qǐng)求 URI 使用的 Host 標(biāo)頭值。 |
IfModifiedSince | 獲取或設(shè)置 If-Modified-Since HTTP 標(biāo)頭的值。 |
ImpersonationLevel | 獲取或設(shè)置當(dāng)前請(qǐng)求的模擬級(jí)別。 (繼承自 WebRequest。) |
KeepAlive | 獲取或設(shè)置一個(gè)值,該值指示是否與 Internet 資源建立持久性連接。 |
MaximumAutomaticRedirections | 獲取或設(shè)置請(qǐng)求將跟隨的重定向的最大數(shù)目。 |
MaximumResponseHeadersLength | 獲取或設(shè)置響應(yīng)標(biāo)題允許的最大長(zhǎng)度。 |
MediaType | 獲取或設(shè)置請(qǐng)求的媒體類型。 |
Method | 獲取或設(shè)置請(qǐng)求的方法。 (重寫 WebRequest.Method。) |
Pipelined | 獲取或設(shè)置一個(gè)值,該值指示是否通過(guò)管線將請(qǐng)求傳輸?shù)?Internet 資源。 |
PreAuthenticate | 獲取或設(shè)置一個(gè)值,該值指示是否隨請(qǐng)求發(fā)送一個(gè)身份驗(yàn)證標(biāo)頭。 (重寫 WebRequest.PreAuthenticate。) |
ProtocolVersion | 獲取或設(shè)置用于請(qǐng)求的 HTTP 版本。 |
Proxy | 獲取或設(shè)置請(qǐng)求的代理信息。 (重寫 WebRequest.Proxy。) |
ReadWriteTimeout | 獲取或設(shè)置寫入或讀取流時(shí)的超時(shí)(以毫秒為單位)。 |
Referer | 獲取或設(shè)置 Referer HTTP 標(biāo)頭的值。 |
RequestUri | 獲取請(qǐng)求的原始統(tǒng)一資源標(biāo)識(shí)符 (URI)。 (重寫 WebRequest.RequestUri。) |
SendChunked | 獲取或設(shè)置一個(gè)值,該值指示是否將數(shù)據(jù)分段發(fā)送到 Internet 資源。 |
ServerCertificateValidationCallback | 獲取或設(shè)置用于驗(yàn)證服務(wù)器證書(shū)的回調(diào)函數(shù)。 |
ServicePoint | 獲取用于請(qǐng)求的服務(wù)點(diǎn)。 |
SupportsCookieContainer | 獲取一個(gè)值,該值指示請(qǐng)求是否為 CookieContainer 提供支持。 |
Timeout | 獲取或設(shè)置 GetResponse 和 GetRequestStream 方法的超時(shí)值(以毫秒為單位)。 (重寫 WebRequest.Timeout。) |
TransferEncoding | 獲取或設(shè)置 Transfer-encoding HTTP 標(biāo)頭的值。 |
UnsafeAuthenticatedConnectionSharing | 獲取或設(shè)置一個(gè)值,該值指示是否允許經(jīng)過(guò)高速 NTLM 身份驗(yàn)證的連接共享。 |
UseDefaultCredentials | 獲取或設(shè)置一個(gè) Boolean 值,該值控制默認(rèn)憑據(jù)是否隨請(qǐng)求一起發(fā)送。 (重寫 WebRequest.UseDefaultCredentials。) |
UserAgent | 獲取或設(shè)置 User-agent HTTP 標(biāo)頭的值。 |
3、方法
名稱 | 說(shuō)明 |
---|---|
Abort | 取消對(duì) Internet 資源的請(qǐng)求。 (重寫 WebRequest.Abort()。) |
AddRange(Int32) | 向請(qǐng)求添加從請(qǐng)求數(shù)據(jù)的開(kāi)始處或結(jié)束處的特定范圍的字節(jié)范圍標(biāo)頭。 |
AddRange(Int64) | 向請(qǐng)求添加從請(qǐng)求數(shù)據(jù)的開(kāi)始處或結(jié)束處的特定范圍的字節(jié)范圍標(biāo)頭。 |
AddRange(Int32, Int32) | 向請(qǐng)求添加指定范圍的字節(jié)范圍標(biāo)頭。 |
AddRange(Int64, Int64) | 向請(qǐng)求添加指定范圍的字節(jié)范圍標(biāo)頭。 |
AddRange(String, Int32) | 向請(qǐng)求添加從請(qǐng)求數(shù)據(jù)的開(kāi)始處或結(jié)束處計(jì)算的特定范圍的 Range 標(biāo)頭。 |
AddRange(String, Int64) | 向請(qǐng)求添加從請(qǐng)求數(shù)據(jù)的開(kāi)始處或結(jié)束處計(jì)算的特定范圍的 Range 標(biāo)頭。 |
AddRange(String, Int32, Int32) | 向請(qǐng)求添加指定范圍的范圍標(biāo)頭。 |
AddRange(String, Int64, Int64) | 向請(qǐng)求添加指定范圍的范圍標(biāo)頭。 |
BeginGetRequestStream | 開(kāi)始對(duì)用來(lái)寫入數(shù)據(jù)的 Stream 對(duì)象的異步請(qǐng)求。 (重寫 WebRequest.BeginGetRequestStream(AsyncCallback, Object)。) |
BeginGetResponse | 開(kāi)始對(duì) Internet 資源的異步請(qǐng)求。 (重寫 WebRequest.BeginGetResponse(AsyncCallback, Object)。) |
CreateObjRef | 創(chuàng)建一個(gè)對(duì)象,該對(duì)象包含生成用于與遠(yuǎn)程對(duì)象進(jìn)行通信的代理所需的全部相關(guān)信息。 (繼承自 MarshalByRefObject。) |
EndGetRequestStream(IAsyncResult) | 結(jié)束對(duì)用于寫入數(shù)據(jù)的 Stream 對(duì)象的異步請(qǐng)求。 (重寫 WebRequest.EndGetRequestStream(IAsyncResult)。) |
EndGetRequestStream(IAsyncResult,TransportContext) | 結(jié)束對(duì)用于寫入數(shù)據(jù)的 Stream 對(duì)象的異步請(qǐng)求,并輸出與該流關(guān)聯(lián)的 TransportContext。 |
EndGetResponse | 結(jié)束對(duì) Internet 資源的異步請(qǐng)求。 (重寫 WebRequest.EndGetResponse(IAsyncResult)。) |
Equals(Object) | 確定指定的對(duì)象是否等于當(dāng)前對(duì)象。 (繼承自 Object。) |
Finalize | 允許對(duì)象在“垃圾回收”回收之前嘗試釋放資源并執(zhí)行其他清理操作。 (繼承自 Object。) |
GetHashCode | 作為默認(rèn)哈希函數(shù)。 (繼承自 Object。) |
GetLifetimeService | 檢索控制此實(shí)例的生存期策略的當(dāng)前生存期服務(wù)對(duì)象。 (繼承自 MarshalByRefObject。) |
GetObjectData | 基礎(chǔ)結(jié)構(gòu)。使用序列化目標(biāo)對(duì)象所需的數(shù)據(jù)填充 SerializationInfo。 (重寫 WebRequest.GetObjectData(SerializationInfo, StreamingContext)。) |
GetRequestStream() | 獲取用于寫入請(qǐng)求數(shù)據(jù)的 Stream 對(duì)象。 (重寫 WebRequest.GetRequestStream()。) |
GetRequestStream(TransportContext) | 獲取用于寫入請(qǐng)求數(shù)據(jù)的 Stream 對(duì)象,并輸出與該流關(guān)聯(lián)的 TransportContext。 |
GetRequestStreamAsync | 當(dāng)在子類中被重寫時(shí),將用于寫入數(shù)據(jù)的 Stream 作為異步操作返回到 Internet 資源。 (繼承自 WebRequest。) |
GetResponse | 返回來(lái)自 Internet 資源的響應(yīng)。 (重寫 WebRequest.GetResponse()。) |
GetResponseAsync | 當(dāng)在子類中被重寫時(shí),將作為異步操作返回對(duì) Internet 請(qǐng)求的響應(yīng)。 (繼承自 WebRequest。) |
GetType | 獲取當(dāng)前實(shí)例的 Type。 (繼承自 Object。) |
InitializeLifetimeService | 獲取控制此實(shí)例的生存期策略的生存期服務(wù)對(duì)象。 (繼承自 MarshalByRefObject。) |
MemberwiseClone() | 創(chuàng)建當(dāng)前 Object 的淺表副本。 (繼承自 Object。) |
MemberwiseClone(Boolean) | 創(chuàng)建當(dāng)前 MarshalByRefObject 對(duì)象的淺表副本。 (繼承自 MarshalByRefObject。) |
ToString | 返回表示當(dāng)前對(duì)象的字符串。 (繼承自 Object。) |
4、顯示接口實(shí)現(xiàn)
名稱 | 說(shuō)明 |
---|---|
ISerializable.GetObjectData | 基礎(chǔ)結(jié)構(gòu)。使用將目標(biāo)對(duì)象序列化所需的數(shù)據(jù)填充 SerializationInfo。 |
5、備注
HttpWebRequest類對(duì)WebRequest中定義的屬性和方法提供支持,也對(duì)使用戶能夠直接與使用 HTTP 的服務(wù)器交互的附加屬性和方法提供支持。
不要使用HttpWebRequest 構(gòu)造函數(shù)。使用 WebRequest.Create方法初始化新的 HttpWebRequest 對(duì)象。如果統(tǒng)一資源標(biāo)識(shí)符 (URI) 的方案是 http:// 或 https://,則 Create 返回 HttpWebRequest 對(duì)象。
GetResponse方法向RequestUri屬性中指定的資源發(fā)出同步請(qǐng)求并返回包含該響應(yīng)的HttpWebResponse。可以使用 BeginGetResponse 和 EndGetResponse 方法對(duì)資源發(fā)出異步請(qǐng)求。
當(dāng)要向資源發(fā)送數(shù)據(jù)時(shí),GetRequestStream 方法返回用于發(fā)送數(shù)據(jù)的 Stream 對(duì)象。BeginGetRequestStream和EndGetRequestStream方法提供對(duì)發(fā)送數(shù)據(jù)流的異步訪問(wèn)。
對(duì)于使用 HttpWebRequest 的客戶端驗(yàn)證身份,客戶端證書(shū)必須安裝在當(dāng)前用戶的“我的證書(shū)”存儲(chǔ)區(qū)中。
如果在訪問(wèn)資源時(shí)發(fā)生錯(cuò)誤,則 HttpWebRequest 類將引發(fā) WebException。WebException.Status 屬性包含指示錯(cuò)誤源的 WebExceptionStatus 值。 當(dāng) WebException.Status 為 WebExceptionStatus.ProtocolError 時(shí),Response 屬性包含從資源接收的 HttpWebResponse。
HttpWebRequest將發(fā)送到 Internet 資源的公共 HTTP 標(biāo)頭值公開(kāi)為屬性,由方法或系統(tǒng)設(shè)置;下表包含完整列表??梢詫?Headers 屬性中的其他標(biāo)頭設(shè)置為名稱/值對(duì)。注意,服務(wù)器和緩存在請(qǐng)求期間可能會(huì)更改或添加標(biāo)頭。
下表列出了由屬性或方法設(shè)置或由系統(tǒng)設(shè)置的 HTTP 標(biāo)頭。
Header | 設(shè)置方 |
---|---|
Accept | 由 Accept 屬性設(shè)置。 |
Connection | 由 Connection 屬性和 KeepAlive 屬性設(shè)置。 |
Content-Length | 由 ContentLength 屬性設(shè)置。 |
Content-Type | 由 ContentType 屬性設(shè)置。 |
Expect | 由 Expect 屬性設(shè)置。 |
日期 | 由系統(tǒng)設(shè)置為當(dāng)前日期。 |
主機(jī) | 由系統(tǒng)設(shè)置為當(dāng)前主機(jī)信息。 |
If-Modified-Since | 由 IfModifiedSince 屬性設(shè)置。 |
范圍 | 由 AddRange 方法設(shè)置。 |
Referer | 由 Referer 屬性設(shè)置。 |
Transfer-Encoding | 由 TransferEncoding 屬性設(shè)置(SendChunked 屬性必須為 true)。 |
User-Agent | 由 UserAgent 屬性設(shè)置。 |
說(shuō)明 |
---|
HttpWebRequest 自動(dòng)注冊(cè)。 使用以 http:// 或 https:// 開(kāi)頭的 URI 之前,不需要調(diào)用 RegisterPrefix 方法來(lái)注冊(cè) System.Net.HttpWebRequest。 |
本地計(jì)算機(jī)或應(yīng)用程序配置文件可能指定使用默認(rèn)代理。 如果指定了 Proxy 屬性,則 Proxy 屬性中的代理設(shè)置會(huì)重寫本地計(jì)算機(jī)或應(yīng)用程序配置文件,并且 HttpWebRequest 實(shí)例將實(shí)用指定的代理設(shè)置。 如果配置文件中未指定代理并且未指定 Proxy 屬性,則 HttpWebRequest 類使用從本地計(jì)算機(jī)上的 Internet Explorer 中繼承的代理設(shè)置。 如果 Internet Explorer 中沒(méi)有代理設(shè)置,請(qǐng)求會(huì)直接發(fā)送到服務(wù)器。
HttpWebRequest 類分析從 Internet Explorer 繼承的且包含通配符的代理忽略列表時(shí)會(huì)與 Internet Explorer 直接分析忽略列表不同。 例如,HttpWebRequest 類將來(lái)自 Internet Explorer 的其中包含“nt*”的忽略列表分析為正則表達(dá)式“nt.$”。 此行為不同于 Internet Explorer 的本機(jī)行為。 因此 URL“http://intxxxxx”將忽略使用 HttpWebRequest 類的代理,但它不會(huì)忽略使用 Internet Explorer 的代理。
說(shuō)明 |
---|
Framework 在創(chuàng)建 SSL 會(huì)話時(shí)緩存這些會(huì)話,如果可能,還嘗試對(duì)新請(qǐng)求重用緩存的會(huì)話。 嘗試重用 SSL 會(huì)話時(shí),該框架將使用 ClientCertificates 的第一個(gè)元素(如果有);如果 ClientCertificates 為空,則將嘗試重用匿名會(huì)話。 |
說(shuō)明 |
---|
為安全起見(jiàn),默認(rèn)情況下禁用 Cookie。 如果您希望使用 Cookie,請(qǐng)使用 CookieContainer 屬性啟用 Cookie。 |
示例
下面的代碼示例為 URI http://www.contoso.com/. 創(chuàng)建 HttpWebRequest。
HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create("http://www.contoso.com/");?
到此這篇關(guān)于C#中的HttpWebRequest類介紹的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
C#使用SQLDMO操作數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了C#使用SQLDMO操作數(shù)據(jù)庫(kù)的方法,實(shí)例分析了基于SQLDMO.dll動(dòng)態(tài)鏈接庫(kù)操作數(shù)據(jù)庫(kù)的相關(guān)技巧,需要的朋友可以參考下2015-06-06C#通過(guò)標(biāo)簽軟件Bartender的ZPL命令打印條碼
這篇文章介紹了C#通過(guò)標(biāo)簽軟件Bartender的ZPL命令打印條碼,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01基于C#實(shí)現(xiàn)手機(jī)號(hào)碼歸屬地接口調(diào)用
這篇文章主要介紹了基于C#實(shí)現(xiàn)手機(jī)號(hào)碼歸屬地接口調(diào)用的相關(guān)資料,需要的朋友可以參考下2016-02-02Unity實(shí)現(xiàn)旋轉(zhuǎn)扭曲圖像特效
這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)旋轉(zhuǎn)扭曲圖像特效,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02詳解WPF如何顯示具有層級(jí)關(guān)系的數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了在WPF中如何顯示具有層級(jí)關(guān)系的數(shù)據(jù),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-04-04C#面向?qū)ο筇卣鞯木唧w實(shí)現(xiàn)及作用詳解
所有的面相對(duì)象思想,歸根結(jié)底是為了簡(jiǎn)化代碼,減少代碼量,構(gòu)建更符合現(xiàn)實(shí)生活邏輯的程序代碼,從而減輕程序員的負(fù)擔(dān)。不能一味地或者說(shuō)刻意地去使用面相對(duì)象的思想而忽略了程序所實(shí)現(xiàn)的功能或者框架,要根據(jù)實(shí)際情況2013-10-10C#數(shù)據(jù)表格(DataGridView)控件的應(yīng)用案例
這篇文章主要介紹了C#數(shù)據(jù)表格(DataGridView)控件的應(yīng)用案例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03