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 オブジェクトを調べて、失敗の原因を特定してください。
解説
この関数を使用すると、アプリケーションで CInternetFile の Write メソッドおよび 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