HttpOpenRequestA 関数 (wininet.h)
HTTP 要求ハンドルを作成します。
構文
HINTERNET HttpOpenRequestA(
[in] HINTERNET hConnect,
[in] LPCSTR lpszVerb,
[in] LPCSTR lpszObjectName,
[in] LPCSTR lpszVersion,
[in] LPCSTR lpszReferrer,
[in] LPCSTR *lplpszAcceptTypes,
[in] DWORD dwFlags,
[in] DWORD_PTR dwContext
);
パラメーター
[in] hConnect
InternetConnect によって返される HTTP セッションへのハンドル。
[in] lpszVerb
要求で使用する HTTP 動詞を含む null で終わる文字列へのポインター。 このパラメーターが NULL の場合、関数は HTTP 動詞として GET を使用します。
[in] lpszObjectName
指定した HTTP 動詞のターゲット オブジェクトの名前を含む null で終わる文字列へのポインター。 通常、これはファイル名、実行可能モジュール、または検索指定子です。
[in] lpszVersion
要求で使用する HTTP バージョンを含む null で終わる文字列へのポインター。 インターネット エクスプローラーの設定は、このパラメーターで指定された値をオーバーライドします。
このパラメーターが NULL の場合、インターネット エクスプローラー設定の値に応じて、関数は HTTP バージョン 1.1 または 1.0 を使用します。
値 | 説明 |
---|---|
|
HTTP バージョン 1.0 |
|
HTTP バージョン 1.1 |
[in] lpszReferrer
要求の URL (lpszObjectName) が取得されたドキュメントの URL を指定する null で終わる文字列へのポインター。 このパラメーターが NULL の場合、参照元は指定されません。
[in] lplpszAcceptTypes
クライアントによって受け入れられるメディアの種類を示す文字列の null で終わる配列へのポインター。 次に例を示します。
PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};
NULL ポインターを使用して配列を適切に終了しないと、クラッシュが発生します。
このパラメーターが NULL の場合、クライアントで受け入れられる型はありません。 一般に、サーバーは受け入れ型の欠如を解釈して、クライアントが "text/*" 型のドキュメントのみを受け入れることを示します (つまり、画像やその他のバイナリ ファイルは含まないテキスト ドキュメントのみ)。
[in] dwFlags
インターネット オプション。 このパラメーターには、次のいずれかの値を指定できます。
値 | 説明 |
---|---|
|
ERROR_INTERNET_CONNECTION_RESET (サーバーとの接続がリセットされました) またはERROR_INTERNET_CANNOT_CONNECT (サーバーへの接続試行が失敗した) によってリソースのネットワーク要求が失敗した場合に、キャッシュからリソースを返します。 |
|
ネットワークからアイテムを再読み込みするかどうかを判断するときに、有効期限時間がなく、LastModified 時刻がサーバーから返されなかった場合に、強制的に再読み込みを行います。 |
|
要求で指定されたホスト名に対してサーバーから返される SSL/PCT ベースの証明書のチェックを無効にします。 WinINet 関数では、ホスト名と単純なワイルドカード規則の照合を比較することで、証明書に対して単純なチェックを使用します。 |
|
SSL/PCT ベースの証明書の適切な有効期限のチェックを無効にします。 |
|
この特殊な種類のリダイレクトの検出を無効にします。 このフラグを使用すると、WinINet 関数は透過的に HTTPS から HTTP URL へのリダイレクトを許可します。 |
|
この特殊な種類のリダイレクトの検出を無効にします。 このフラグを使用すると、WinINet 関数は透過的に HTTP から HTTPS URL へのリダイレクトを許可します。 |
|
接続にキープアライブ セマンティクス (使用可能な場合) を使用します。 このフラグは、Microsoft Network (MSN)、NT LAN Manager (NTLM)、およびその他の種類の認証に必要です。 |
|
ファイルをキャッシュできない場合は、一時ファイルを作成します。 |
|
認証を自動的に試行しません。 |
|
HttpSendRequest でリダイレクトを自動的に処理しません。 |
|
返されたエンティティをキャッシュに追加しません。 |
|
要求に Cookie ヘッダーを自動的に追加せず、返された Cookie を Cookie データベースに自動的に追加しません。 |
|
Cookie ダイアログ ボックスを無効にします。 |
|
キャッシュされたコピーがプロキシ上に存在する場合でも、配信元サーバーによって要求が強制的に解決されるようにします。 |
|
要求されたファイル、オブジェクト、またはディレクトリ リストをキャッシュからではなく元のサーバーからダウンロードします。 |
|
前回のダウンロード以降にリソースが変更された場合は、HTTP リソースを再読み込みします。 すべての FTP リソースが再読み込みされます。
Windows XP および Windows Server 2003 R2 以前: Gopher リソースも再読み込みされます。 |
|
安全なトランザクション セマンティクスを使用します。 これは、Secure Sockets Layer/Private Communications Technology (SSL/PCT) の使用に変換され、HTTP 要求でのみ意味があります。 |
[in] dwContext
この操作を任意のアプリケーション データに関連付けるアプリケーション定義値を含む変数へのポインター。
戻り値
成功した場合は HTTP 要求ハンドルを返し、それ以外の場合は NULL を 返します。 拡張エラー情報を取得するには、 GetLastError を呼び出します。
解説
HttpOpenRequest 関数は、新しい HTTP 要求ハンドルを作成し、指定されたパラメーターをそのハンドルに格納します。 HTTP 要求ハンドルは、HTTP サーバーに送信される要求を保持し、要求の一部として送信されるすべての RFC822/MIME/HTTP ヘッダーを含みます。
"GET" または "POST" 以外の動詞が指定されている場合、 HttpOpenRequest は要求のINTERNET_FLAG_NO_CACHE_WRITEとINTERNET_FLAG_RELOADを自動的に設定します。
Microsoft Internet エクスプローラー 5 以降では、lpszVerb が "HEAD" に設定されている場合、HTTP/1.1 サーバーからの応答では Content-Length ヘッダーは無視されます。
Windows 7、Windows Server 2008 R2 以降では、lpszVersion パラメーターはインターネット エクスプローラー設定によってオーバーライドされます。 EnableHttp1_1は、システムのインターネット エクスプローラーで設定されたインターネット オプションによって制御される HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE の下のレジストリ値です。 EnableHttp1_1値の既定値は 1 です。 HttpOpenRequest 関数は、EnableHttp1_1が 1 に設定されている場合、1.1 未満のすべての HTTP バージョンを HTTP バージョン 1.1 にアップグレードします。
呼び出し元のアプリケーションで HttpOpenRequest によって返される HINTERNET ハンドルの使用が完了したら、InternetCloseHandle 関数を使用して閉じる必要があります。
メモ要求が非同期モードで送信された場合 (InternetOpen の dwFlags パラメーターはINTERNET_FLAG_ASYNCを指定します)、dwContext パラメーターが 0 (INTERNET_NO_CALLBACK) の場合、要求ハンドルで InternetSetStatusCallback を使用して設定されたコールバック関数は呼び出されませんが、呼び出しは非同期モードで実行されます。
WinINet API の他のすべての側面と同様に、この関数を DllMain またはグローバル オブジェクトのコンストラクターとデストラクター内から安全に呼び出すことはできません。
注意
wininet.h ヘッダーは、HTTPOpenRequest をエイリアスとして定義し、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | wininet.h |
Library | Wininet.lib |
[DLL] | Wininet.dll |