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
参考情報
|