CHttpFile::SendRequestEx
更新 : 2007 年 11 月
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 以外を返します。それ以外の場合は 0 を返します。呼び出しに失敗した場合は、スローされた CInternetException オブジェクトを調べて、失敗の原因を特定してください。
解説
この関数を使用すると、アプリケーションで CInternetFile の Write メソッドおよび WriteString メソッドを使用して、データを送信できます。この関数の両方のオーバーライドは、送信するデータの長さがわからないと、呼び出せません。最初のオーバーライドでは、送信するデータの長さを指定できます。2 番目のオーバーライドは INTERNET_BUFFERS 構造体へのポインタを受け取るので、この構造体でバッファの内容を詳細に記述できます。
内容がファイルに書き込まれたら、EndRequest を呼び出して操作を終了します。
dwContext の既定値は、MFC によって、CHttpFile オブジェクトを作成した CInternetSession オブジェクトから CHttpFile オブジェクトへ渡されます。CInternetSession::OpenURL または CHttpConnection を呼び出して CHttpFile オブジェクトを構築すると、既定値をオーバーライドして、コンテキスト ID を独自の値に設定できます。コンテキスト ID は、CInternetSession::OnStatusCallback に返され、該当するオブジェクトのステータスが通知されます。コンテキスト ID の詳細については、「WinInet の基礎」を参照してください。
例外
このメソッドは、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