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 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/")
注釈
注意
WebRequest
、HttpWebRequest
、ServicePoint
、WebClient
は廃止されており、新しい開発には使用しないでください。 代わりに HttpClient を使用してください。
HttpWebRequest クラスは、WebRequest で定義されているプロパティとメソッド、およびユーザーが HTTP を使用してサーバーと直接対話できるようにする追加のプロパティとメソッドをサポートします。
HttpWebRequest コンストラクターは使用しないでください。
WebRequest.Create メソッドを使用して、新しい HttpWebRequest オブジェクトを初期化します。 URI (Uniform Resource Identifier) のスキームが http://
または https://
の場合、Create は HttpWebRequest オブジェクトを返します。
GetResponse メソッドは、RequestUri プロパティで指定されたリソースに対して同期要求を行い、応答オブジェクトを含む HttpWebResponse を返します。 応答データは、GetResponseStreamによって返されるストリームを使用して受信できます。 応答オブジェクトまたは応答ストリームが閉じている場合、残りのデータは失われます。 残りのデータはドレインされ、次の条件が満たされている場合は応答オブジェクトまたはストリームを閉じるときに、後続の要求にソケットが再利用されます。キープアライブ要求またはパイプライン要求である場合、少量のデータのみを受信する必要がある場合、または残りのデータを短時間で受信する必要があります。 上記のどの条件も保持されていない場合、またはドレイン時間を超えた場合、ソケットは閉じられます。 キープアライブ接続またはパイプライン接続の場合は、アプリケーションが EOF までストリームを読み取うことを強くお勧めします。 これにより、後続の要求にソケットが再利用され、パフォーマンスが向上し、使用されるリソースが少なくなります。
リソースにデータを送信する場合、GetRequestStream メソッドは、データの送信に使用する Stream オブジェクトを返します。 BeginGetRequestStream メソッドと EndGetRequestStream メソッドは、送信データ ストリームへの非同期アクセスを提供します。
HttpWebRequestを使用したクライアント認証では、クライアント証明書を現在のユーザーの My 証明書ストアにインストールする必要があります。
HttpWebRequest クラスは、リソースへのアクセス中にエラーが発生したときに WebException をスローします。 WebException.Status プロパティには、エラーの原因を示す WebExceptionStatus 値が含まれています。 WebException.Status が WebExceptionStatus.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 |
|
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-Continue が受信されるまで待機するタイムアウトをミリ秒単位で取得または設定します。 |
CookieContainer |
要求に関連付けられている Cookie を取得または設定します。 |
CreatorInstance |
古い.
子孫クラスでオーバーライドされると、指定した URI への要求を行うためにインスタンス化された WebRequest を作成するために使用される IWebRequestCreate クラスから派生したファクトリ オブジェクトを取得します。 (継承元 WebRequest) |
Credentials |
要求の認証情報を取得または設定します。 |
Date |
HTTP 要求で使用する |
DefaultCachePolicy |
この要求の既定のキャッシュ ポリシーを取得または設定します。 |
DefaultMaximumErrorResponseLength |
HTTP エラー応答の既定の最大長を取得または設定します。 |
DefaultMaximumResponseHeadersLength |
MaximumResponseHeadersLength プロパティの既定値を取得または設定します。 |
Expect |
|
HaveResponse |
応答がインターネット リソースから受信されたかどうかを示す値を取得します。 |
Headers |
HTTP ヘッダーを構成する名前と値のペアのコレクションを指定します。 |
Host |
要求 URI から独立した HTTP 要求で使用するホスト ヘッダー値を取得または設定します。 |
IfModifiedSince |
|
ImpersonationLevel |
現在の要求の偽装レベルを取得または設定します。 (継承元 WebRequest) |
KeepAlive |
インターネット リソースへの永続的な接続を確立するかどうかを示す値を取得または設定します。 |
MaximumAutomaticRedirections |
要求が従うリダイレクトの最大数を取得または設定します。 |
MaximumResponseHeadersLength |
応答ヘッダーの最大許容長を取得または設定します。 |
MediaType |
要求のメディアの種類を取得または設定します。 |
Method |
要求のメソッドを取得または設定します。 |
Pipelined |
インターネット リソースに要求をパイプライン処理するかどうかを示す値を取得または設定します。 |
PreAuthenticate |
要求と共に Authorization ヘッダーを送信するかどうかを示す値を取得または設定します。 |
PreAuthenticate |
子孫クラスでオーバーライドされた場合、要求を事前認証するかどうかを示します。 (継承元 WebRequest) |
ProtocolVersion |
要求に使用する HTTP のバージョンを取得または設定します。 |
Proxy |
要求のプロキシ情報を取得または設定します。 |
Proxy |
子孫クラスでオーバーライドされると、このインターネット リソースへのアクセスに使用するネットワーク プロキシを取得または設定します。 (継承元 WebRequest) |
ReadWriteTimeout |
ストリームへの書き込みまたはストリームからの読み取り時のタイムアウトをミリ秒単位で取得または設定します。 |
Referer |
|
RequestUri |
要求の元の Uniform Resource Identifier (URI) を取得します。 |
SendChunked |
セグメント内のデータをインターネット リソースに送信するかどうかを示す値を取得または設定します。 |
ServerCertificateValidationCallback |
サーバー証明書を検証するコールバック関数を取得または設定します。 |
ServicePoint |
要求に使用するサービス ポイントを取得します。 |
SupportsCookieContainer |
要求が CookieContainerのサポートを提供するかどうかを示す値を取得します。 |
Timeout |
GetResponse() メソッドと GetRequestStream() メソッドのタイムアウト値をミリ秒単位で取得または設定します。 |
Timeout |
要求がタイムアウトするまでの時間の長さをミリ秒単位で取得または設定します。 (継承元 WebRequest) |
TransferEncoding |
|
UnsafeAuthenticatedConnectionSharing |
高速 NTLM 認証接続共有を許可するかどうかを示す値を取得または設定します。 |
UseDefaultCredentials |
既定の資格情報を要求と共に送信するかどうかを制御する Boolean 値を取得または設定します。 |
UseDefaultCredentials |
子孫クラスでオーバーライドされると、DefaultCredentials が要求と共に送信されるかどうかを制御する Boolean 値を取得または設定します。 (継承元 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) |
テレメトリの目的で使用する送信要求のメタデータを設定します。 |
適用対象
こちらもご覧ください
- DefaultProxy 要素 (ネットワーク設定)
- バージョン 3.5 SP1 での HTTPWebRequest の NTLM 認証の変更
.NET