次の方法で共有


CHttpFile::SendRequestEx

HTTP サーバーに要求を送信します。

BOOL SendRequestEx(
   DWORD dwTotalLen,
   DWORD dwFlags = HSR_INITIATE,
   DWORD_PTR dwContext = 1 
);
BOOL SendRequestEx(
   LPINTERNET_BUFFERS lpBuffIn,
   LPINTERNET_BUFFERS lpBuffOut,
   DWORD dwFlags = HSR_INITIATE,
   DWORD_PTR dwContext = 1 
);

パラメーター

  • dwTotalLen
    要求で送信されるバイト数。

  • dwFlags
    操作を指定するフラグ。 有効なフラグの一覧については、Windows SDK の「HttpSendRequestEx」を参照してください。

  • dwContext
    CHttpFile 操作のコンテキスト ID。 このパラメーターの詳細については、「解説」を参照してください。

  • lpBuffIn
    操作に使用する入力バッファーが記述された、初期化済み INTERNET_BUFFERS へのポインター。

  • lpBuffOut
    操作に使用する出力バッファーを記述した初期化済み INTERNET_BUFFERS へのポインター。

戻り値

正常終了した場合は 0 以外を返します。 呼び出しに失敗した場合は、スローされた CInternetException オブジェクトを調べて、失敗の原因を特定してください。

解説

この関数を使用すると、アプリケーションで CInternetFileWrite メソッドおよび WriteString メソッドを使用して、データを送信できます。 この関数の両方のオーバーライドは、送信するデータの長さがわからないと、呼び出せません。 最初のオーバーライドでは、送信するデータの長さを指定できます。 2 番目のオーバーライドは INTERNET_BUFFERS 構造体へのポインターを受け取るので、この構造体でバッファーの内容を詳細に記述できます。

内容がファイルに書き込まれたら、EndRequest を呼び出して操作を終了します。

dwContext の既定値は、MFC によって、CHttpFile オブジェクトを作成した CInternetSession オブジェクトから CHttpFile オブジェクトへ渡されます。 CInternetSession::OpenURL または CHttpConnection を呼び出して CHttpFile オブジェクトを構築すると、既定値をオーバーライドして、コンテキスト ID を独自の値に設定できます。 コンテキスト ID は、CInternetSession::OnStatusCallback に返され、該当するオブジェクトのステータスが通知されます。 参照してくださいインターネットの最初のステップ:WinInetについてのコンテキスト id。

例外

このメソッドは、CInternetException* 型の例外をスローできます。

使用例

このコードは、LOCALHOST サーバーの DLL "MFCISAPI.DLL" に、文字列の内容を送信します。 この例では、WriteString を 1 回しか呼び出していませんが、複数回呼び出してデータをブロック単位で送信することもできます。

CString strData = _T("Some very long data to be POSTed here!");
pServer = session.GetHttpConnection(_T("localhost"));
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_POST, 
   _T("/MFCISAPI/MFCISAPI.dll?"));
pFile->SendRequestEx(strData.GetLength());

pFile->WriteString(strData);   
pFile->EndRequest();

必要条件

**ヘッダー:**afxinet.h

参照

参照

CHttpFile クラス

階層図

CInternetFile クラス

CHttpFile::SendRequest

その他の技術情報

CHttpFile のメンバー