次の方法で共有


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-terminated 文字列へのポインター。 このパラメーターが NULL場合、関数は HTTP 動詞として GET を使用します。

[in] lpszObjectName

指定した HTTP 動詞のターゲット オブジェクトの名前を含む、null終了文字列へのポインター。 これは通常、ファイル名、実行可能モジュール、または検索指定子です。

[in] lpszVersion

要求で使用する HTTP バージョンを含む null-terminated 文字列へのポインター。 Internet Explorer の設定は、このパラメーターで指定された値をオーバーライドします。

このパラメーターが NULL場合、関数は Internet Explorer の設定の値に応じて、HTTP バージョン 1.1 または 1.0 を使用します。

価値 意味
HTTP/1.0
HTTP バージョン 1.0
HTTP/1.1
HTTP バージョン 1.1

[in] lpszReferrer

要求 (lpszObjectName) の URL が取得されたドキュメントの URL を指定する、null終了文字列へのポインター。 このパラメーターが NULL場合、参照元は指定されません。

[in] lplpszAcceptTypes

nullクライアントが受け入れるメディアの種類を示す文字列の終端配列へのポインター。 例を次に示します。

PCTSTR rgpszAcceptTypes[] = {_T("text/*"), NULL};

NULL ポインターで配列を正しく終了しないと、クラッシュが発生します。

このパラメーターが NULL場合、クライアントは型を受け入れなくなります。 サーバーは通常、受け入れ型の欠如を解釈して、クライアントが "text/*" 型のドキュメントのみを受け入れることを示します (つまり、画像やその他のバイナリ ファイルがないテキスト ドキュメントのみ)。

[in] dwFlags

インターネット オプション。 このパラメーターには、次のいずれかの値を指定できます。

価値 意味
INTERNET_FLAG_CACHE_IF_NET_FAIL
ERROR_INTERNET_CONNECTION_RESET (サーバーとの接続がリセットされました) またはERROR_INTERNET_CANNOT_CONNECT (サーバーへの接続の試行に失敗) が原因でリソースのネットワーク要求が失敗した場合に、キャッシュからリソースを返します。
INTERNET_FLAG_HYPERLINK
ネットワークからアイテムを再読み込みするかどうかを決定するときに、有効期限時間がなく、サーバーから LastModified 時刻が返されなかった場合は、強制的に再読み込みを行います。
INTERNET_FLAG_IGNORE_CERT_CN_INVALID
要求で指定されたホスト名に対してサーバーから返される SSL/PCT ベースの証明書のチェックを無効にします。 WinINet 関数では、一致するホスト名と単純なワイルドカード規則を比較することで、証明書に対する単純なチェックを使用します。
INTERNET_FLAG_IGNORE_CERT_DATE_INVALID
SSL/PCT ベースの証明書の正しい有効期間のチェックを無効にします。
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP
この特殊な種類のリダイレクトの検出を無効にします。 このフラグを使用すると、WinINet 関数は HTTPS から HTTP URL へのリダイレクトを透過的に許可します。
INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS
この特殊な種類のリダイレクトの検出を無効にします。 このフラグを使用すると、WinINet 関数は HTTP から HTTPS URL へのリダイレクトを透過的に許可します。
INTERNET_FLAG_KEEP_CONNECTION
接続にキープアライブ セマンティクス (使用可能な場合) を使用します。 このフラグは、Microsoft Network (MSN)、NT LAN Manager (NTLM)、およびその他の種類の認証に必要です。
INTERNET_FLAG_NEED_FILE
ファイルをキャッシュできない場合は、一時ファイルを作成します。
INTERNET_FLAG_NO_AUTH
認証を自動的に試行しません。
INTERNET_FLAG_NO_AUTO_REDIRECT
httpSendRequestでリダイレクト 自動的に処理しません。
INTERNET_FLAG_NO_CACHE_WRITE
返されたエンティティをキャッシュに追加しません。
INTERNET_FLAG_NO_COOKIES
要求に Cookie ヘッダーを自動的に追加せず、返された Cookie を Cookie データベースに自動的に追加しません。
INTERNET_FLAG_NO_UI
Cookie ダイアログ ボックスを無効にします。
INTERNET_FLAG_PRAGMA_NOCACHE
キャッシュされたコピーがプロキシ上に存在する場合でも、配信元サーバーによって要求が解決されるように強制します。
INTERNET_FLAG_RELOAD
要求されたファイル、オブジェクト、またはディレクトリの一覧をキャッシュからではなく、配信元サーバーから強制的にダウンロードします。
INTERNET_FLAG_RESYNCHRONIZE
前回のダウンロード以降にリソースが変更された場合は、HTTP リソースを再読み込みします。 すべての FTP リソースが再読み込みされます。

Windows XP および Windows Server 2003 R2 以前: Gopher リソースも再読み込みされます。

INTERNET_FLAG_SECURE
セキュリティで保護されたトランザクション セマンティクスを使用します。 これは、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 Explorer 5 以降では、lpszVerb が "HEAD" に設定されている場合、HTTP/1.1 サーバーからの応答では Content-Length ヘッダーは無視されます。

Windows 7、Windows Server 2008 R2 以降では、lpszVersion パラメーターは Internet Explorer の設定によってオーバーライドされます。 EnableHttp1_1 は、システムの Internet Explorer で設定 インターネット オプションによって制御される HKLM\Software\Microsoft\InternetExplorer\AdvacnedOptions\HTTP\GENABLE のレジストリ値です。 EnableHttp1_1 値の既定値は 1 です。 HttpOpenRequest 関数は、EnableHttp1_1 が 1 に設定されている場合、1.1 未満のすべての HTTP バージョンを HTTP バージョン 1.1 にアップグレードします。

HttpOpenRequestによって返される HINTERNET ハンドル の使用が完了したら、InternetCloseHandle 関数を使用して呼び出し元アプリケーションを閉じる必要があります。

注意 要求が非同期モードで送信された場合 (InternetOpendwFlags パラメーターで INTERNET_FLAG_ASYNCを指定)、dwContext パラメーターがゼロ (INTERNET_NO_CALLBACK) の場合、要求ハンドルで InternetSetStatusCallback 設定されたコールバック関数は呼び出されません。 呼び出しは引き続き非同期モードで実行されます。

WinINet API の他のすべての側面と同様に、この関数は DllMain またはグローバル オブジェクトのコンストラクターとデストラクターから安全に呼び出すことはできません。

注意 WinINet では、サーバーの実装はサポートされていません。 また、サービスから使用しないでください。 サーバーの実装またはサービスの場合は、Microsoft Windows HTTP Services (WinHTTP)を使用します。
 

手記

wininet.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして HttpOpenRequest を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー wininet.h
ライブラリ Wininet.lib
DLL Wininet.dll

関連項目

HTTP セッション

WinINet Functions の