HttpWebRequest クラス

定義

WebRequest クラスの HTTP 固有の実装を提供します。

public ref class HttpWebRequest : System::Net::WebRequest
public ref class HttpWebRequest : System::Net::WebRequest, System::Runtime::Serialization::ISerializable
public class HttpWebRequest : System.Net.WebRequest
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
[System.Serializable]
public class HttpWebRequest : System.Net.WebRequest, System.Runtime.Serialization.ISerializable
type HttpWebRequest = class
    inherit WebRequest
type HttpWebRequest = class
    inherit WebRequest
    interface ISerializable
[<System.Serializable>]
type HttpWebRequest = class
    inherit WebRequest
    interface ISerializable
Public Class HttpWebRequest
Inherits WebRequest
Public Class HttpWebRequest
Inherits WebRequest
Implements ISerializable
継承
HttpWebRequest
継承
属性
実装

次のコード例では、URI http://www.contoso.com/HttpWebRequest を作成します。

HttpWebRequest^ myReq = dynamic_cast<HttpWebRequest^>(WebRequest::Create( "http://www.contoso.com/" ));

HttpWebRequest myReq =
(HttpWebRequest)WebRequest.Create("http://www.contoso.com/");

Dim myReq As HttpWebRequest = _
    WebRequest.Create("http://www.contoso.com/")

注釈

注意

WebRequestHttpWebRequestServicePointWebClient は廃止されており、新しい開発には使用しないでください。 代わりに HttpClient を使用してください。

HttpWebRequest クラスは、WebRequest で定義されているプロパティとメソッド、およびユーザーが HTTP を使用してサーバーと直接対話できるようにする追加のプロパティとメソッドをサポートします。

HttpWebRequest コンストラクターは使用しないでください。 WebRequest.Create メソッドを使用して、新しい HttpWebRequest オブジェクトを初期化します。 URI (Uniform Resource Identifier) のスキームが http:// または https://の場合、CreateHttpWebRequest オブジェクトを返します。

GetResponse メソッドは、RequestUri プロパティで指定されたリソースに対して同期要求を行い、応答オブジェクトを含む HttpWebResponse を返します。 応答データは、GetResponseStreamによって返されるストリームを使用して受信できます。 応答オブジェクトまたは応答ストリームが閉じている場合、残りのデータは失われます。 残りのデータはドレインされ、次の条件が満たされている場合は応答オブジェクトまたはストリームを閉じるときに、後続の要求にソケットが再利用されます。キープアライブ要求またはパイプライン要求である場合、少量のデータのみを受信する必要がある場合、または残りのデータを短時間で受信する必要があります。 上記のどの条件も保持されていない場合、またはドレイン時間を超えた場合、ソケットは閉じられます。 キープアライブ接続またはパイプライン接続の場合は、アプリケーションが EOF までストリームを読み取うことを強くお勧めします。 これにより、後続の要求にソケットが再利用され、パフォーマンスが向上し、使用されるリソースが少なくなります。

リソースにデータを送信する場合、GetRequestStream メソッドは、データの送信に使用する Stream オブジェクトを返します。 BeginGetRequestStream メソッドと EndGetRequestStream メソッドは、送信データ ストリームへの非同期アクセスを提供します。

HttpWebRequestを使用したクライアント認証では、クライアント証明書を現在のユーザーの My 証明書ストアにインストールする必要があります。

HttpWebRequest クラスは、リソースへのアクセス中にエラーが発生したときに WebException をスローします。 WebException.Status プロパティには、エラーの原因を示す WebExceptionStatus 値が含まれています。 WebException.StatusWebExceptionStatus.ProtocolErrorされると、Response プロパティにはリソースから受信した HttpWebResponse が含まれます。

HttpWebRequest は、インターネット リソースに送信される一般的な HTTP ヘッダー値をプロパティとして公開したり、メソッドによって設定したり、システムによって設定したりします。次の表に完全な一覧を示します。 Headers プロパティ内の他のヘッダーは、名前と値のペアとして設定できます。 サーバーとキャッシュは、要求中にヘッダーを変更または追加する可能性があることに注意してください。

次の表に、プロパティまたはメソッドまたはシステムによって設定される HTTP ヘッダーを示します。

ヘッダ 設定者
Accept Accept プロパティによって設定されます。
Connection Connection プロパティ 、KeepAlive プロパティによって設定されます。
Content-Length ContentLength プロパティによって設定されます。
Content-Type ContentType プロパティによって設定されます。
Expect Expect プロパティによって設定されます。
Date システムによって現在の日付に設定されます。
Host システムによって現在のホスト情報に設定されます。
If-Modified-Since IfModifiedSince プロパティによって設定されます。
Range AddRange メソッドによって設定されます。
Referer Referer プロパティによって設定されます。
Transfer-Encoding TransferEncoding プロパティで設定します (SendChunked プロパティは trueする必要があります)。
User-Agent UserAgent プロパティによって設定されます。

手記

HttpWebRequest は自動的に登録されます。 http:// または https://で始まる URI を使用する前に、RegisterPrefix メソッドを呼び出して System.Net.HttpWebRequest を登録する必要はありません。

ローカル コンピューターまたはアプリケーション構成ファイルでは、既定のプロキシを使用することを指定できます。 Proxy プロパティが指定されている場合、Proxy プロパティのプロキシ設定はローカル コンピューターまたはアプリケーション構成ファイルをオーバーライドし、HttpWebRequest インスタンスは指定されたプロキシ設定を使用します。 構成ファイルにプロキシが指定されておらず、Proxy プロパティが指定されていない場合、HttpWebRequest クラスはローカル コンピューター上のインターネット オプションから継承されたプロキシ設定を使用します。 インターネット オプションにプロキシ設定がない場合、要求はサーバーに直接送信されます。

手記

フレームワークは、作成された SSL セッションをキャッシュし、可能であれば、キャッシュされたセッションを新しい要求に再利用しようとします。 SSL セッションを再利用しようとすると、フレームワークは ClientCertificates の最初の要素 (存在する場合) を使用するか、ClientCertificates が空の場合は匿名セッションを再利用しようとします。

手記

セキュリティ上の理由から、Cookie は既定で無効になっています。 Cookie を使用する場合は、CookieContainer プロパティを使用して Cookie を有効にします。

.NET Framework 4.6 には、接続の安全でない暗号アルゴリズムとハッシュ アルゴリズムをブロックする新しいセキュリティ機能が含まれています。 HTTPClient、HttpWebRequest、FTPClient、SmtpClient、SslStream などの API を介して TLS/SSL を使用し、.NET Framework 4.6 を対象とするアプリケーションでは、既定でより安全な動作が得られます。

開発者は、既存の SSL3 サービスまたは TLS と RC4 サービスとの相互運用性を維持するために、この動作をオプトアウトすることができます。 この記事、新しい動作が無効になるようにコードを変更する方法について説明します。

コンストラクター

HttpWebRequest()
古い.
古い.

HttpWebRequest クラスの新しいインスタンスを初期化します。 このコンストラクターは廃止されています。

HttpWebRequest(SerializationInfo, StreamingContext)
古い.
古い.
古い.
古い.

SerializationInfo クラスと StreamingContext クラスの指定したインスタンスから、HttpWebRequest クラスの新しいインスタンスを初期化します。 このコンストラクターは廃止されています。

プロパティ

Accept

Accept HTTP ヘッダーの値を取得または設定します。

Address

要求に実際に応答するインターネット リソースの URI (Uniform Resource Identifier) を取得します。

AllowAutoRedirect

要求がリダイレクト応答に従う必要があるかどうかを示す値を取得または設定します。

AllowReadStreamBuffering

インターネット リソースから受信したデータをバッファーに格納するかどうかを示す値を取得または設定します。

AllowWriteStreamBuffering

インターネット リソースに送信されたデータをバッファーに格納するかどうかを示す値を取得または設定します。

AuthenticationLevel

この要求に使用される認証と偽装のレベルを示す値を取得または設定します。

(継承元 WebRequest)
AutomaticDecompression

使用する展開の種類を取得または設定します。

CachePolicy

この要求のキャッシュ ポリシーを取得または設定します。

(継承元 WebRequest)
ClientCertificates

この要求に関連付けられているセキュリティ証明書のコレクションを取得または設定します。

Connection

Connection HTTP ヘッダーの値を取得または設定します。

ConnectionGroupName

要求の接続グループの名前を取得または設定します。

ConnectionGroupName

子孫クラスでオーバーライドされると、要求の接続グループの名前を取得または設定します。

(継承元 WebRequest)
ContentLength

Content-length HTTP ヘッダーを取得または設定します。

ContentLength

子孫クラスでオーバーライドされると、送信される要求データのコンテンツ長を取得または設定します。

(継承元 WebRequest)
ContentType

Content-type HTTP ヘッダーの値を取得または設定します。

ContinueDelegate

HTTP 100 continue 応答がインターネット リソースから受信されたときに呼び出されるデリゲート メソッドを取得または設定します。

ContinueTimeout

サーバーから 100-Continue が受信されるまで待機するタイムアウトをミリ秒単位で取得または設定します。

CookieContainer

要求に関連付けられている Cookie を取得または設定します。

CreatorInstance
古い.

子孫クラスでオーバーライドされると、指定した URI への要求を行うためにインスタンス化された WebRequest を作成するために使用される IWebRequestCreate クラスから派生したファクトリ オブジェクトを取得します。

(継承元 WebRequest)
Credentials

要求の認証情報を取得または設定します。

Date

HTTP 要求で使用する Date HTTP ヘッダー値を取得または設定します。

DefaultCachePolicy

この要求の既定のキャッシュ ポリシーを取得または設定します。

DefaultMaximumErrorResponseLength

HTTP エラー応答の既定の最大長を取得または設定します。

DefaultMaximumResponseHeadersLength

MaximumResponseHeadersLength プロパティの既定値を取得または設定します。

Expect

Expect HTTP ヘッダーの値を取得または設定します。

HaveResponse

応答がインターネット リソースから受信されたかどうかを示す値を取得します。

Headers

HTTP ヘッダーを構成する名前と値のペアのコレクションを指定します。

Host

要求 URI から独立した HTTP 要求で使用するホスト ヘッダー値を取得または設定します。

IfModifiedSince

If-Modified-Since HTTP ヘッダーの値を取得または設定します。

ImpersonationLevel

現在の要求の偽装レベルを取得または設定します。

(継承元 WebRequest)
KeepAlive

インターネット リソースへの永続的な接続を確立するかどうかを示す値を取得または設定します。

MaximumAutomaticRedirections

要求が従うリダイレクトの最大数を取得または設定します。

MaximumResponseHeadersLength

応答ヘッダーの最大許容長を取得または設定します。

MediaType

要求のメディアの種類を取得または設定します。

Method

要求のメソッドを取得または設定します。

Pipelined

インターネット リソースに要求をパイプライン処理するかどうかを示す値を取得または設定します。

PreAuthenticate

要求と共に Authorization ヘッダーを送信するかどうかを示す値を取得または設定します。

PreAuthenticate

子孫クラスでオーバーライドされた場合、要求を事前認証するかどうかを示します。

(継承元 WebRequest)
ProtocolVersion

要求に使用する HTTP のバージョンを取得または設定します。

Proxy

要求のプロキシ情報を取得または設定します。

Proxy

子孫クラスでオーバーライドされると、このインターネット リソースへのアクセスに使用するネットワーク プロキシを取得または設定します。

(継承元 WebRequest)
ReadWriteTimeout

ストリームへの書き込みまたはストリームからの読み取り時のタイムアウトをミリ秒単位で取得または設定します。

Referer

Referer HTTP ヘッダーの値を取得または設定します。

RequestUri

要求の元の Uniform Resource Identifier (URI) を取得します。

SendChunked

セグメント内のデータをインターネット リソースに送信するかどうかを示す値を取得または設定します。

ServerCertificateValidationCallback

サーバー証明書を検証するコールバック関数を取得または設定します。

ServicePoint

要求に使用するサービス ポイントを取得します。

SupportsCookieContainer

要求が CookieContainerのサポートを提供するかどうかを示す値を取得します。

Timeout

GetResponse() メソッドと GetRequestStream() メソッドのタイムアウト値をミリ秒単位で取得または設定します。

Timeout

要求がタイムアウトするまでの時間の長さをミリ秒単位で取得または設定します。

(継承元 WebRequest)
TransferEncoding

Transfer-encoding HTTP ヘッダーの値を取得または設定します。

UnsafeAuthenticatedConnectionSharing

高速 NTLM 認証接続共有を許可するかどうかを示す値を取得または設定します。

UseDefaultCredentials

既定の資格情報を要求と共に送信するかどうかを制御する Boolean 値を取得または設定します。

UseDefaultCredentials

子孫クラスでオーバーライドされると、DefaultCredentials が要求と共に送信されるかどうかを制御する Boolean 値を取得または設定します。

(継承元 WebRequest)
UserAgent

User-agent HTTP ヘッダーの値を取得または設定します。

メソッド

Abort()

インターネット リソースへの要求を取り消します。

AddRange(Int32)

要求されたデータの先頭または末尾から特定の範囲の要求にバイト範囲ヘッダーを追加します。

AddRange(Int32, Int32)

指定した範囲の要求にバイト範囲ヘッダーを追加します。

AddRange(Int64)

要求されたデータの先頭または末尾から特定の範囲の要求にバイト範囲ヘッダーを追加します。

AddRange(Int64, Int64)

指定した範囲の要求にバイト範囲ヘッダーを追加します。

AddRange(String, Int32)

要求されたデータの先頭または末尾から特定の範囲の要求に Range ヘッダーを追加します。

AddRange(String, Int32, Int32)

指定した範囲の要求に範囲ヘッダーを追加します。

AddRange(String, Int64)

要求されたデータの先頭または末尾から特定の範囲の要求に Range ヘッダーを追加します。

AddRange(String, Int64, Int64)

指定した範囲の要求に範囲ヘッダーを追加します。

BeginGetRequestStream(AsyncCallback, Object)

データの書き込みに使用する Stream オブジェクトの非同期要求を開始します。

BeginGetResponse(AsyncCallback, Object)

インターネット リソースへの非同期要求を開始します。

CreateObjRef(Type)

リモート オブジェクトとの通信に使用されるプロキシの生成に必要なすべての関連情報を含むオブジェクトを作成します。

(継承元 MarshalByRefObject)
EndGetRequestStream(IAsyncResult)

データの書き込みに使用する Stream オブジェクトの非同期要求を終了します。

EndGetRequestStream(IAsyncResult, TransportContext)

データの書き込みに使用する Stream オブジェクトの非同期要求を終了し、ストリームに関連付けられている TransportContext を出力します。

EndGetResponse(IAsyncResult)

インターネット リソースへの非同期要求を終了します。

Equals(Object)

指定したオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetHashCode()

WebRequest インスタンスのハッシュ値を返します。

GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
GetObjectData(SerializationInfo, StreamingContext)
古い.
古い.
古い.

ターゲット オブジェクトをシリアル化するために必要なデータを SerializationInfo に設定します。

GetObjectData(SerializationInfo, StreamingContext)
古い.

ターゲット オブジェクトをシリアル化するために必要なデータを SerializationInfo に設定します。

(継承元 WebRequest)
GetRequestStream()

要求データの書き込みに使用する Stream オブジェクトを取得します。

GetRequestStream()

子孫クラスでオーバーライドされると、インターネット リソースにデータを書き込むための Stream を返します。

(継承元 WebRequest)
GetRequestStream(TransportContext)

要求データの書き込みに使用する Stream オブジェクトを取得し、ストリームに関連付けられている TransportContext を出力します。

GetRequestStreamAsync()

子孫クラスでオーバーライドされると、非同期操作としてインターネット リソースにデータを書き込むための Stream を返します。

(継承元 WebRequest)
GetResponse()

インターネット リソースからの応答を返します。

GetResponse()

子孫クラスでオーバーライドされると、インターネット要求への応答を返します。

(継承元 WebRequest)
GetResponseAsync()

子孫クラスでオーバーライドされると、インターネット要求への応答を非同期操作として返します。

(継承元 WebRequest)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
InitializeLifetimeService()
古い.

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。

(継承元 MarshalByRefObject)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。

(継承元 MarshalByRefObject)
ToString()

現在のオブジェクトを表す文字列を返します。

(継承元 Object)

明示的なインターフェイスの実装

ISerializable.GetObjectData(SerializationInfo, StreamingContext)
古い.
古い.
古い.

ターゲット オブジェクトをシリアル化するために必要なデータを SerializationInfo に設定します。

拡張メソッド

GetRequestMetadata(HttpWebRequest)

テレメトリの目的で使用する送信要求のメタデータを取得します。

SetRequestMetadata(HttpWebRequest, RequestMetadata)

テレメトリの目的で使用する送信要求のメタデータを設定します。

適用対象

こちらもご覧ください