HttpSendRequestの例(C言語)

説明:

HttpSendRequestを利用して、//www.cool.ne.jp/masapico/index.htmlの内容を取得する。

キーワード:

InternetOpen, InternetConnect, HttpOpenRequest, HttpSendRequest, HttpQueryInfo, InternetReadFile, InternetCloseHandle

サンプルコード:

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);
}

(original text:1999/04/21 更新)

本ドキュメントの内容は保証しません。本ドキュメントによって生じた結果について、一切の責任を負いません。