BOOL HttpSendRequest( IN HINTERNET hRequest, IN LPCTSTR Headers, IN DWORD HeadersLength, IN LPVOID Optional, DWORD OptionalLength);
引数の意味は以下の通り。
| hRequest | HttpOpenRequestで返された、送信するHTTP要求を識別するハンドル。 |
| Headers | 追加のヘッダ。NULLを指定可能。 |
| HeadersLength | Headersのサイズ。-1を指定した場合、自動的に計算される。 |
| Optional | 要求ヘッダ後に直接送信されるオプションのデータ。通常POSTやPUTで使用される。NULLを指定可能。 |
| OptionalLength | Optionalのサイズ。 |
戻り値は、関数の実行に成功したか否かを表す真偽値である。
void RequestHttp()
{
HINTERNET hInternet;
HINTERNET hHttpSession;
HINTERNET hHttpRequest;
char *Buf;
char BufSizeText[1000];
DWORD BufSizeTextSize = 1000;
DWORD BufSize;
DWORD ReadSize;
/* WININET初期化 */
hInternet = InternetOpen(
"WININET Sample Program",
INTERNET_OPEN_TYPE_PRECONFIG,
NULL,
NULL,
0);
/* サーバへ接続 */
hHttpSession = InternetConnect(
hInternet,
"www.cool.ne.jp",
INTERNET_DEFAULT_HTTP_PORT,
NULL,
NULL,
INTERNET_SERVICE_HTTP,
0,
0);
/* HTTP要求の作成 */
hHttpRequest = HttpOpenRequest(
hHttpSession,
"GET",
"index.html",
NULL,
"http://www.cool.ne.jp/masapico/",
NULL,
0,
0);
/* 作成したHTTP要求の発行 */
HttpSendRequest(
hHttpRequest,
NULL,
0,
NULL,
0);
/* 返されたコンテンツの長さを取得 */
HttpQueryInfo(
hHttpRequest,
HTTP_QUERY_CONTENT_LENGTH,
BufSizeText,
&BufSizeTextSize,
NULL);
BufSize = atol(BufSizeText);
Buf = GlobalAlloc(GMEM_FIXED, BufSize);
/* コンテンツの内容を取得・表示 */
InternetReadFile(
hHttpRequest,
Buf,
BufSize,
&ReadSize);
printf("%s\n", Buf);
/* 後処理 */
GlobalFree(Buf);
InternetCloseHandle(hHttpRequest);
InternetCloseHandle(hHttpSession);
InternetCloseHandle(hInternet);
}