okutil_http_ex


概要

WebサービスまたはPOST要求からサーバへのデータの取得

構文

int okutil_http_ex( LPCSTR lpcszURL, OCHTTP_t * phttp )

パラメータ

lpcszURL
[input] WebサービスURL
phttp
[input/output] HTTP設定
typedef struct {
        DWORD dwOptions; //OCHTTP_* を参照
        int nConnectTimeout; //HTTP リクエストがタイムアウトするまでに接続を確立するために必要な秒数
        int nResponseTimeout; //応答を待つ秒数
        BOOL bIgnoreCertError; //エラーを無視
        LPCSTR pcszSrc; //データのリクエスト
        LPCSTR pcszDst; //サービスからのファイル
        LPVOID pstrDst; //サービスからの文字列
        LPCSTR pcszRequestHeader; //ヘッダのリクエスト
        LPVOID pstrResp; //呼び出し結果
} OCHTTP_t;

enum {
        OCHTTP_GET = 0x0001, //サービスからデータを取得
        OCHTTP_POST = 0x0002, //サーバへのPOSTリクエスト
        OCHTTP_SRC_STR = 0x0010, //pcszSrcはリクエストデータ
        OCHTTP_SRC_FILE = 0x0020, //pcszSrcはリクエストデータを含むファイルのフルパス名
        OCHTTP_DST_STR = 0x0040, //サービスから文字列を取得
        OCHTTP_DST_FILE = 0x0080, //サービスからファイルを取得
        OCHTTP_PROGRESSBAR = 0x0100, /// EJP 2019-01-23 ORG-19597-S4 OKUTIL_HTTP_PROGRESS_BAR
        OCHTTP_SRC_BIN = 0x0200, /// EJP 2024-04-17 ORG-28773-S1 HTTP_POST_BINARY_FILE
};

戻り値

成功した場合は0、それ以外の場合は負のエラーコード

サンプル

EX1

void okutil_http_ex_download(LPCSTR lpcszURL, string&strResp, string&strTmpFileName)
{
        //ダウンロード用のhttp設定を初期化
        OCHTTP_t http;
        http.dwOptions = OCHTTP_GET | OCHTTP_DST_FILE;
        http.bIgnoreCertError = true;
        http.nConnectTimeout = 0;
        http.nResponseTimeout = 30;
        http.pcszDst = strTmpFileName; //一時ファイルにダウンロード
        http.pstrResp = &strResp;

        int nErrr = okutil_http_ex(lpcszURL, &http);
        printf("err %d\n", nErrr);
}

EX2

void test_http_post_text_file()
{
        OCHTTP_t http;
        http.dwOptions = OCHTTP_POST | OCHTTP_SRC_FILE; //ファイルのアップロード
        http.bIgnoreCertError = true;
        http.pcszSrc = GetAppPath(TRUE) + "Samples\\Statistics\\cars.csv"; //ファイルの置換
        int err = okutil_http_ex("https://posttestserver.dev/p/3qsy1gsnu2848b5a/post", &http); //URLの置換
        printf("err %d\n", err); 
}

EX3

void test_http_post_binary_file()
{
        OCHTTP_t http;
        http.dwOptions = OCHTTP_POST | OCHTTP_SRC_FILE | OCHTTP_SRC_BIN; //バイナリファイルをアップロード
        http.bIgnoreCertError = true;
        http.pcszSrc = GetAppPath(TRUE) + "Samples\\Python\\Extract Image Colors.opju"; //ファイルの置換
        int err = okutil_http_ex("https://posttestserver.dev/p/3qsy1gsnu2848b5a/post", &http); //URLの置換
        printf("err %d\n", err); 
}

備考

関連情報

含めるヘッダ

origin.h

参考情報