winhttp简单用法(1)--header

#include <string>
#include <iostream>
#include <windows.h>
#include <winhttp.h> 
#pragma comment(lib,"winhttp.lib")
#pragma comment(lib,"user32.lib")


void main()
{

	
    DWORD dwSize = 0;
	LPVOID lpOutBuffer = NULL;
	HINTERNET  hSession = NULL,
			   hConnect = NULL,
			   hRequest = NULL;

	BOOL  bResults = FALSE;

	hSession=WinHttpOpen(L"User Agent",WINHTTP_ACCESS_TYPE_DEFAULT_PROXY,WINHTTP_NO_PROXY_NAME,WINHTTP_NO_PROXY_BYPASS,0);

	if(hSession)
	{
		hConnect=WinHttpConnect(hSession,L"192.168.0.8",INTERNET_DEFAULT_HTTP_PORT,0);
	}

	if(hConnect)
	{
		hRequest=WinHttpOpenRequest(hConnect, L"GET",L"login.html",L"HTTP/1.1", WINHTTP_NO_REFERER,WINHTTP_DEFAULT_ACCEPT_TYPES,0);
	}

	if(hRequest)
	{
		bResults=WinHttpSendRequest(hRequest,WINHTTP_NO_ADDITIONAL_HEADERS, 0,WINHTTP_NO_REQUEST_DATA, 0, 0, 0 );
	}

	if(bResults)
	{
		bResults=WinHttpReceiveResponse(hRequest,NULL);

	}

	
	if(bResults)
	{
		bResults=WinHttpQueryHeaders(hRequest,WINHTTP_QUERY_RAW_HEADERS_CRLF, WINHTTP_HEADER_NAME_BY_INDEX,NULL,&dwSize,WINHTTP_NO_HEADER_INDEX);

		if( GetLastError( ) == ERROR_INSUFFICIENT_BUFFER)
		{
			lpOutBuffer = new WCHAR[dwSize/sizeof(WCHAR)];
			
			bResults = WinHttpQueryHeaders(hRequest,WINHTTP_QUERY_RAW_HEADERS_CRLF,WINHTTP_HEADER_NAME_BY_INDEX, lpOutBuffer, &dwSize,WINHTTP_NO_HEADER_INDEX);
		}
	}
	
	if(bResults)
	{
		printf("Header contents: \n%S",lpOutBuffer);
	}
	
	delete [] lpOutBuffer;

    if (hRequest) WinHttpCloseHandle(hRequest);
    if (hConnect) WinHttpCloseHandle(hConnect);
    if (hSession) WinHttpCloseHandle(hSession);

	

	 system("pause");


}

 

转载于:https://www.cnblogs.com/ytjjyy/archive/2012/05/03/2480319.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值