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/")

注釈

重要

新しい開発には使用 HttpWebRequest しないことをお勧めします。 代わりに、クラスを使用します System.Net.Http.HttpClient

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

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

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

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

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

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

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

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

ヘッダー 設定者
Accept プロパティによって設定されます Accept
Connection プロパティ、KeepAliveプロパティによってConnection設定されます。
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 が自動的に登録されます。 で始まる https://``http:// URI を使用する前に、登録System.Net.HttpWebRequestするメソッドを呼び出すRegisterPrefix必要はありません。

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

HttpWebRequestクラスがワイルドカード文字を Internet Explorer によって直接解析バイパス リストよりも異なる方法で Internet Explorer から継承プロキシ バイ パスの一覧を解析します。 たとえば、HttpWebRequestクラスでは「nt *」Internet Explorer からのバイパス リストを解析の正規表現として"nt.$"です。 これは、Internet Explorer のネイティブの動作とは異なります。 これの URL"http://intxxxxx"を使用してプロキシを使用しないと、HttpWebRequestクラスが、Internet Explorer を使用してプロキシをバイパスできません。

注意

フレームワークは、作成された 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 クラスの新しいインスタンスを初期化します。 このコンストラクターは今後は使用しません。

HttpWebRequest(Uri)

プロパティ

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 回の続行まで待機するミリ秒単位のタイムアウト値をサーバーから取得または設定します。

CookieContainer

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

CreatorInstance
互換性のために残されています。

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

(継承元 WebRequest)
Credentials

要求に対して使用する認証情報を取得または設定します。

Date

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

DefaultCachePolicy

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

DefaultMaximumErrorResponseLength

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

DefaultMaximumResponseHeadersLength

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

Expect

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

HaveResponse

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

Headers

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

Host

要求 URI に依存しない HTTP 要求で使用する Host ヘッダー値を取得または設定します。

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

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

SendChunked

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

ServerCertificateValidationCallback

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

ServicePoint

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

SupportsCookieContainer

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

Timeout

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

Timeout

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

(継承元 WebRequest)
TransferEncoding

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

UnsafeAuthenticatedConnectionSharing

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

UseDefaultCredentials

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

UseDefaultCredentials

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

(継承元 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 に、オブジェクトをシリアル化するために必要なデータを設定します。

適用対象

こちらもご覧ください