HttpWebRequest クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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
- 継承
- 継承
- 属性
- 実装
例
次のコード例では、URI の を HttpWebRequest 作成します http://www.contoso.com/
。
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 、 で WebRequest 定義されているプロパティとメソッド、およびユーザーが HTTP を使用してサーバーと直接やり取りできるようにする追加のプロパティとメソッドをサポートします。
コンストラクターは HttpWebRequest 使用しないでください。 メソッドを WebRequest.Create 使用して、新しい HttpWebRequest オブジェクトを初期化します。 Uniform Resource Identifier (URI) のスキームが または https://
のCreate場合はhttp://
、 オブジェクトがHttpWebRequest返されます。
メソッドは GetResponse 、 プロパティで指定されたリソースに対して同期要求を RequestUri 行い、応答オブジェクトを含む を HttpWebResponse 返します。 応答データは、 によって GetResponseStream返されるストリームを使用して受信できます。 応答オブジェクトまたは応答ストリームが閉じている場合、残りのデータは失われます。 残りのデータはドレインされ、次の条件が満たされている場合は、応答オブジェクトまたはストリームを閉じるときに、後続の要求にソケットが再利用されます。これはキープアライブ要求またはパイプライン化された要求、少量のデータのみを受信する必要がある場合、または残りのデータを短時間で受信する場合です。 上記の条件が何も保持されていない場合、またはドレイン時間を超えた場合、ソケットは閉じられます。 キープアライブ接続またはパイプライン接続の場合は、アプリケーションが EOF までストリームを読み取うことを強くお勧めします。 これにより、後続の要求にソケットが再利用され、パフォーマンスが向上し、使用されるリソースが少なくなります。
リソースにデータを送信する場合、 メソッドは GetRequestStream 、データの Stream 送信に使用する オブジェクトを返します。 BeginGetRequestStreamメソッドと EndGetRequestStream メソッドは、送信データ ストリームへの非同期アクセスを提供します。
を使用した HttpWebRequestクライアント認証の場合、クライアント証明書は、現在のユーザーの My 証明書ストアにインストールされている必要があります。
クラスは HttpWebRequest 、 WebException リソースへのアクセス中にエラーが発生したときに をスローします。 プロパティには WebException.Status 、エラーの WebExceptionStatus 原因を示す値が含まれています。 が WebExceptionStatus.ProtocolErrorの場合WebException.Status、Responseプロパティにはリソースから受信した がHttpWebResponse含まれます。
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 を使用する前に、 メソッドを呼び出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 |
|
Address |
要求に実際に応答するインターネット リソースの URI (Uniform Resource Identifier) を取得します。 |
AllowAutoRedirect |
要求がリダイレクト応答に従うかどうかを示す値を取得または設定します。 |
AllowReadStreamBuffering |
インターネット リソースから受け取ったデータをバッファリングするかどうかを示す値を取得または設定します。 |
AllowWriteStreamBuffering |
インターネット リソースに送信するデータをバッファリングするかどうかを示す値を取得または設定します。 |
AuthenticationLevel |
この要求で使用する認証レベルおよび偽装レベルを示す値を取得または設定します。 (継承元 WebRequest) |
AutomaticDecompression |
使用される圧縮解除の種類を取得または設定します。 |
CachePolicy |
この要求のキャッシュ ポリシーを取得または設定します。 (継承元 WebRequest) |
ClientCertificates |
この要求に関連付けられているセキュリティ証明書のコレクションを取得または設定します。 |
Connection |
|
ConnectionGroupName |
要求に対して使用する接続グループの名前を取得または設定します。 |
ConnectionGroupName |
派生クラスでオーバーライドされると、要求で使用する接続グループの名前を取得または設定します。 (継承元 WebRequest) |
ContentLength |
|
ContentLength |
派生クラスでオーバーライドされると、送信している要求データのコンテンツ長を取得または設定します。 (継承元 WebRequest) |
ContentType |
|
ContinueDelegate |
インターネット リソースから HTTP 100-continue 応答を受信したときに呼び出されるデリゲート メソッドを取得または設定します。 |
ContinueTimeout |
100 回の続行まで待機するミリ秒単位のタイムアウト値をサーバーから取得または設定します。 |
CookieContainer |
要求に関連付けられているクッキーを取得または設定します。 |
CreatorInstance |
古い.
派生クラスでオーバーライドされると、IWebRequestCreate クラスから派生するファクトリ オブジェクトを取得します。このクラスは、指定 URI に対して要求を行うためにインスタンス化される WebRequest を作成するために使用されます。 (継承元 WebRequest) |
Credentials |
要求に対して使用する認証情報を取得または設定します。 |
Date |
HTTP 要求で使用する |
DefaultCachePolicy |
この要求の既定のキャッシュ ポリシーを取得または設定します。 |
DefaultMaximumErrorResponseLength |
HTTP エラー応答の既定の最大長を取得または設定します。 |
DefaultMaximumResponseHeadersLength |
MaximumResponseHeadersLength プロパティの既定値を取得または設定します。 |
Expect |
|
HaveResponse |
インターネット リソースから応答が受信されたかどうかを示す値を取得します。 |
Headers |
HTTP ヘッダーを構成する名前と値のペアのコレクションを指定します。 |
Host |
要求 URI に依存しない HTTP 要求で使用する Host ヘッダー値を取得または設定します。 |
IfModifiedSince |
|
ImpersonationLevel |
現在の要求に対する偽装レベルを取得または設定します。 (継承元 WebRequest) |
KeepAlive |
インターネット リソースへの永続的な接続を行うかどうかを示す値を取得または設定します。 |
MaximumAutomaticRedirections |
要求によって実行されるリダイレクトの最大数を取得または設定します。 |
MaximumResponseHeadersLength |
応答ヘッダーの許容最大長を取得または設定します。 |
MediaType |
要求のメディア タイプを取得または設定します。 |
Method |
要求に対して使用するメソッドを取得または設定します。 |
Pipelined |
インターネット リソースへの要求をパイプライン処理するかどうかを示す値を取得または設定します。 |
PreAuthenticate |
要求で Authorization ヘッダーを送信するかどうかを示す値を取得または設定します。 |
PreAuthenticate |
派生クラスでオーバーライドされる場合、要求を事前認証するかどうかを指定します。 (継承元 WebRequest) |
ProtocolVersion |
要求に対して使用する HTTP バージョンを取得または設定します。 |
Proxy |
要求に対して使用するプロキシ情報を取得または設定します。 |
Proxy |
派生クラスでオーバーライドされると、インターネット リソースにアクセスするために使用するネットワーク プロキシを取得または設定します。 (継承元 WebRequest) |
ReadWriteTimeout |
ストリームへの書き込み時またはストリームからの読み取り時のタイムアウト (ミリ秒単位) を取得または設定します。 |
Referer |
|
RequestUri |
要求の元の URI (Uniform Resource Identifier) を取得します。 |
SendChunked |
インターネット リソースへセグメント単位でデータを送信するかどうかを示す値を取得または設定します。 |
ServerCertificateValidationCallback |
サーバー証明書を検証するコールバック関数を取得または設定します。 |
ServicePoint |
要求に対して使用するサービス ポイントを取得します。 |
SupportsCookieContainer |
要求が CookieContainer をサポートするかどうかを示す値を取得します。 |
Timeout |
GetResponse() メソッドと GetRequestStream() メソッドのタイムアウト値 (ミリ秒単位) を取得または設定します。 |
Timeout |
要求がタイムアウトするまでのミリ秒単位の時間を取得または設定します。 (継承元 WebRequest) |
TransferEncoding |
|
UnsafeAuthenticatedConnectionSharing |
高速 NTLM 認証された接続共有を許可するかどうかを示す値を取得または設定します。 |
UseDefaultCredentials |
既定の資格情報が要求と共に送信されるかどうかを制御する Boolean 値を取得または設定します。 |
UseDefaultCredentials |
派生クラスでオーバーライドされる場合、Boolean が要求と共に送信されるかどうかを制御する DefaultCredentials 値を取得または設定します。 (継承元 WebRequest) |
UserAgent |
|
メソッド
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) |
テレメトリの目的で使用する送信要求のメタデータを設定します。 |
適用対象
こちらもご覧ください
.NET
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示