次の方法で共有


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 オブジェクトを調べて、失敗の原因を特定してください。

解説

この関数を使用すると、アプリケーションで CInternetFileWrite メソッドおよび 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

参照

参照

CHttpFile クラス

階層図

CInternetFile クラス

CHttpFile::SendRequest

その他の技術情報

CHttpFile のメンバ