HttpWebRequest クラスには、WebRequest で定義されているプロパティおよびメソッドと、HTTP を使用してサーバーと直接対話できるようにする追加のプロパティおよびメソッドが用意されています。
HttpWebRequest コンストラクタは使用しないでください。新しい HttpWebRequest オブジェクトを初期化するには、System.Net.WebRequest.Create メソッドを使用します。URI (Uniform Resource Identifier) のスキームが 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 は、メソッドまたはシステムによって設定され、プロパティとしてインターネット リソースに送信される共通 HTTP ヘッダー値を公開します。完全な一覧を次の表に示します。Headers プロパティで、名前/値ペアとしてその他のヘッダーを設定できます。サーバーおよびキャッシュにより、要求時に、ヘッダーが変更または追加されることがあります。
プロパティ、メソッド、またはシステムのいずれかによって設定される HTTP ヘッダーの一覧を次の表に示します。
メモ |
|---|
| HttpWebRequest は、自動的に登録されます。http:// または https:// で始まる URI を使用する前に、RegisterPrefix メソッドを呼び出して System.Net.HttpWebRequest を登録する必要はありません。 |
ローカル コンピュータの構成でプロキシを使用するように指定しているか、または、要求でプロキシが指定されている場合、要求はプロキシを使用して送信されます。プロキシが指定されていない場合、要求はサーバーに送信されます。
メモ |
|---|
| .NET Framework は、SSL セッションをその作成時にキャッシュし、可能な場合にはキャッシュされているセッションを新しい要求に再利用しようとします。SSL セッションの再利用を試みる場合、.NET Framework は、ClientCertificates が存在すればその最初の要素を使用し、ClientCertificates が空であれば匿名セッションの再利用を試みます。 |
メモ |
|---|
| セキュリティ上の理由から、Cookie は既定では無効です。Cookie を使用する場合は、CookieContainer プロパティを使用して Cookie を有効にします。 |