CMNロゴ

ICmnPilot::cmnWebRequest Method


HTTPサーバーにリクエストを送信します。

Syntax

LPSTR cmnWebRequest(
    TWebParam& WebParam
);

Parameters

WebParam

[in] WEBアクセスパラメータ
以下の必要な項目を設定します。

lpBaseURL[in] ベースURL
lpURLが相対パスの場合にベースとなるURLを指定します。
省略可能です。
lpURL[in] アクセスURL
lpUserID[in] 認証サイトのID
クリアテキスト認証または暗号化パスワード認証の場合に使用します。
cookie認証には使用できません。
省略可能です。
lpPassword[in] 認証サイトのパスワード
クリアテキスト認証または暗号化パスワード認証の場合に使用します。
cookie認証には使用できません。
省略可能です。
lpHeader[in] HTTP Header
省略可能です。
省略した場合には以下の値が使用されます。
・cPostが1以上かつlpPostがNULL以外の場合
  Content-Type: application/x-www-form-urlencoded
  Proxy-Connection: Keep-Alive
  Accept-Language: ja
  Accept-Encoding: gzip
・それ以外の場合
  Accept-Language: ja
  Accept-Encoding: gzip
lpReferer[in] Referer
巡回時先サイトがRefererを必要とする場合に設定します。
省略可能です。
lpString[in] 巡回中に巡回ステータスに表示する文字列
受信の場合は通常は掲示板名、投稿の場合は通常は発言タイトルを設定します。
・cPostが1以上かつlpPostがNULL以外かつbContributeがTRUEの場合
  指定文字列の前に「投稿中 : 」が挿入されます。
省略可能です。
省略した場合には以下の文字列が使用されます。
・cPostが1以上かつlpPostがNULL以外かつbContributeがTRUEの場合
  投稿中
・それ以外の場合
  受信中
※掲示板巡回中のみ有効です。cpxFolderPilotStart等では無効です。
cPost[in] POSTパラメータサイズ
lpPostに設定されたPOSTパラメータのサイズ。
省略可能です。
lpPost[in] POSTパラメータ
cPostが1以上でlpPostがNULL以外の場合には"POST"メソッドとなります。
それ以外の場合は"GET"メソッドとなります。
省略可能です。
bContribute[in] 投稿フラグ
投稿する場合はTRUEを設定します。
TRUEとFALSEではlpStringの扱いが変わるだけです。
省略可能です。
cTimeout[in] タイムアウト値(秒)
省略可能です。
省略した場合は60秒となります。
bNoUncompress[in] gzip無展開フラグ
TRUEが指定されるとgzip展開されません。
省略可能です。
bNoSetError[in] エラー文字列非設定フラグ
TRUEが指定されるとWEBアクセス中にエラーが発生してもエラー文字列は設定されません。
省略可能です。
dwSize[out] 受信サイズ
受信されたデータのサイズが設定されます。
dwStatus[out] HTTPステータスコード
通常は200(OK)が設定されます。
cContentType[in] ContentTypeの取得サイズ
受信されたデータのContentTypeを取得する場合のバッファサイズ。 省略可能です。
lpContentType[out] ContentType
受信されたデータのContentType。
cContentTypeが1以上でlpContentTypeがNULL以外の場合に設定されます。
省略可能です。
cRealURL[in] 転送先URLの取得サイズ
転送先URLを受信する場合のバッファサイズ。
省略可能です。
lpRealURL[out] 転送先URL
lpURLで指定したURLへのアクセス結果が301(moved)または302(redirect)のステータスの場合、 CMNは転送先URLへのアクセスを試みます。
cRealURLが1以上かつlpRealURLがNULL以外の場合に転送先URLが設定されます。
転送先URLにアクセスできなかった場合には設定されません。
省略可能です。
その他の項目0 で初期化する必要があります。

Return Value

受信されたデータのポインタが戻ります。
ポインタがNULL以外の場合、CPXが終了する前にICmnPilot::cmnFreeデータ領域を開放しなければなりません
WEBアクセスがエラーの場合にはNULLが戻ります。

Remarks

ICmnPilot::cmnWebRequest の戻り値となるデータ領域はCMNで管理されます。
データ領域を開放するには free () を使用せずに必ず ICmnPilot::cmnFree を使用してください。


Example

C++

         :
    TWebParam WebParam;
    memset (&WebParam, 0, sizeof (TWebParam));
    WebParam.lpURL = szURL;
    WebParam.lpString = Mes.lpSubject;
    if ((pPage = m_pICmnPilot->cmnWebRequest (WebParam)) != NULL) {
         :
         m_pICmnPilot->cmnFree (pPage);
    }

Delphi

var
    WebParam: TWebParam;
;
         :
    FillChar (WebParam, sizeof (TWebParam), 0);
    WebParam.lpURL := szURL;
    WebParam.lpString := Mes.lpSubject;
    pPage := m_pICmnPilot.cmnWebRequest (WebParam);
    if (pPage <> Nil) then
    begin
         :
         m_pICmnPilot.cmnFree (pPage);
    end;



ICmnPilot