次の方法で共有


CHttpConnection クラス

HTTP サーバーへの接続を管理します。

構文

class CHttpConnection : public CInternetConnection

メンバー

パブリック コンストラクター

名前 説明
CHttpConnection::CHttpConnection CHttpConnection オブジェクトを作成します。

パブリック メソッド

名前 説明
CHttpConnection::OpenRequest HTTP 要求を開きます。

解説

HTTP は、MFC WinInet クラスによって実装される 3 つのインターネット サーバー プロトコルの 1 つです。

CHttpConnectionクラスには、HTTP プロトコルを使用してサーバーへの接続を管理するコンストラクターと 1 つのメンバー関数 (OpenRequest が含まれています。

HTTP サーバーと通信するには、まず CInternetSession のインスタンスを作成してから、 CHttpConnection オブジェクトを作成する必要があります。 CHttpConnection オブジェクトを直接作成することはありません。代わりに、CInternetSession::GetHttpConnection を呼び出して、CHttpConnection オブジェクトを作成し、そのオブジェクトへのポインターを返します。

他の MFC インターネット クラスと連携 CHttpConnection 方法の詳細については、「WinInet を使用したInternet プログラミング 」の記事を参照してください。 他の 2 つのサポートされているインターネット プロトコル (gopher と FTP) を使用したサーバーへの接続の詳細については、 CGopherConnectionCFtpConnection のクラスを参照してください。

継承階層

CObject

CInternetConnection

CHttpConnection

要件

Header: afxinet.h

CHttpConnection::CHttpConnection

このメンバー関数は、 CHttpConnection オブジェクトを構築するために呼び出されます。

CHttpConnection(
    CInternetSession* pSession,
    HINTERNET hConnected,
    LPCTSTR pstrServer,
    DWORD_PTR dwContext);

CHttpConnection(
    CInternetSession* pSession,
    LPCTSTR pstrServer,
    INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
    LPCTSTR pstrUserName = NULL,
    LPCTSTR pstrPassword = NULL,
    DWORD_PTR dwContext = 1);

CHttpConnection(
    CInternetSession* pSession,
    LPCTSTR pstrServer,
    DWORD dwFlags,
    INTERNET_PORT nPort = INTERNET_INVALID_PORT_NUMBER,
    LPCTSTR pstrUserName = NULL,
    LPCTSTR pstrPassword = NULL,
    DWORD_PTR dwContext = 1);

パラメーター

pSession
CInternetSession オブジェクトへのポインター。

hConnected
インターネット接続へのハンドル。

pstrServer
サーバー名を含む文字列へのポインター。

dwContext
CInternetConnection オブジェクトのコンテキスト識別子。 dwContextの詳細については、「Remarks」セクションを参照してください。

nPort
この接続のインターネット ポートを識別する番号。

pstrUserName
サインインするユーザーの名前を指定する null で終わる文字列へのポインター。 NULL の場合、既定値は匿名です。

pstrPassword
サインインに使用するパスワードを指定する null で終わる文字列へのポインター。 pstrPasswordpstrUserNameの両方が NULL の場合、既定の匿名パスワードはユーザーの電子メール名です。 pstrPassword が NULL または空の文字列ですが、pstrUserName が NULL でない場合は、空白のパスワードが使用されます。 次の表では、 pstrUserNamepstrPassword の 4 つの設定の動作について説明します。

pstrUserName pstrPassword FTP サーバーに送信されたユーザー名 FTP サーバーに送信されたパスワード
NULL または " " NULL または " " "anonymous" ユーザーのメール名
NULL 以外の文字列 NULL または " " pstrUserName " "
NULL NULL 以外の文字列 ERROR ERROR
NULL 以外の文字列 NULL 以外の文字列 pstrUserName pstrPassword

dwFlags
INTERNET_FLAG_* フラグの任意の組み合わせ。 dwFlags 値の説明については、CHttpConnection::OpenRequestRemarks セクションの表を参照してください。

解説

CHttpConnectionを直接作成することはありません。 代わりに、 CInternetSession::GetHttpConnection を呼び出してオブジェクトを作成します。

CHttpConnection::OpenRequest

このメンバー関数を呼び出して HTTP 接続を開きます。

CHttpFile* OpenRequest(
    LPCTSTR pstrVerb,
    LPCTSTR pstrObjectName,
    LPCTSTR pstrReferer = NULL,
    DWORD_PTR dwContext = 1,
    LPCTSTR* ppstrAcceptTypes = NULL,
    LPCTSTR pstrVersion = NULL,
    DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);

CHttpFile* OpenRequest(
    int nVerb,
    LPCTSTR pstrObjectName,
    LPCTSTR pstrReferer = NULL,
    DWORD_PTR dwContext = 1,
    LPCTSTR* ppstrAcceptTypes = NULL,
    LPCTSTR pstrVersion = NULL,
    DWORD dwFlags = INTERNET_FLAG_EXISTING_CONNECT);

パラメーター

pstrVerb
要求で使用する動詞を含む文字列へのポインター。 NULL の場合は、"GET" が使用されます。

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

pstrReferer
要求の URL (pstrObjectName) が取得されたドキュメントのアドレス (URL) を指定する文字列へのポインター。 NULL の場合、HTTP ヘッダーは指定されません。

dwContext
OpenRequest 操作のコンテキスト識別子。 dwContextの詳細については、「解説」セクションを参照してください。

ppstrAcceptTypes
クライアントが受け入れるコンテンツ タイプを示す文字列への LPCTSTR ポインターの null で終わる配列へのポインター。 ppstrAcceptTypes が NULL の場合、サーバーは、クライアントが "text/*" 型のドキュメントのみを受け入れると解釈します (つまり、画像やその他のバイナリ ファイルではなく、テキスト ドキュメントのみ)。 コンテンツ タイプは CGI 変数 CONTENT_TYPE と同等です。HTTP POST や PUT など情報が添付されるクエリのデータの形式を識別します。

pstrVersion
HTTP バージョンを定義する文字列へのポインター。 NULL の場合は、"HTTP/1.0" が使用されます。

dwFlags
INTERNET_ FLAG_* フラグの任意の組み合わせ。 可能な dwFlags 値の説明については、「解説」セクションを参照してください。

nVerb
HTTP 要求の種類に関連付けられた番号。 以下のいずれかを指定できます。

HTTP 要求の種類 nVerb
HTTP_VERB_POST 0
HTTP_VERB_GET 1
HTTP_VERB_HEAD 2
HTTP_VERB_PUT 3
HTTP_VERB_LINK 4
HTTP_VERB_DELETE 5
HTTP_VERB_UNLINK 6

戻り値

要求された CHttpFile オブジェクトへのポインター。

解説

dwFlags には、次のいずれかを指定できます。

インターネット フラグ 説明
INTERNET_FLAG_RELOAD 要求されたファイル、オブジェクト、またはディレクトリ リストをキャッシュからではなく元のサーバーからダウンロードします。
INTERNET_FLAG_DONT_CACHE 返されたエンティティをキャッシュに追加しません。
INTERNET_FLAG_MAKE_PERSISTENT 返されたエンティティを永続エンティティとしてキャッシュに追加します。 これは、標準のキャッシュ クリーンアップ、整合性チェック、またはガベージ コレクションでは、この項目をキャッシュから削除できないことを意味します。
INTERNET_FLAG_SECURE 安全なトランザクション セマンティクスを使用します。 SSL/PCT の使用に変換され、HTTP 要求でのみ意味があります
INTERNET_FLAG_NO_AUTO_REDIRECT HTTP でのみ使用され、リダイレクトを CHttpFile::SendRequest で自動的に処理しないように指定します。

dwContext の既定値をオーバーライドして、コンテキスト識別子を独自の値に設定します。 コンテキスト識別子は、CInternetSession オブジェクトによって作成されたCHttpConnection オブジェクトのこの特定の操作に関連付けられています。 値は、 CInternetSession::OnStatusCallback に返され、識別される操作の状態を指定します。 コンテキスト識別子の詳細については、「 Internet First Steps: WinInet 」を参照してください。

この関数では例外がスローされる場合があります。

関連項目

CInternetConnection クラス
階層図
CInternetConnection クラス
CHttpFile クラス