HTTP GET的VC三种方式
一.第一种方式(包装类的方式)
a.在VC++添加类,选择typelib
b.选择文件:C:\Windows\System32\winhttp.dll
选择到右边生成的类,最后点完成,即产生了一个CWinhttpRequest类
------剩余具体步骤-----------------------------------------
//1.初始化COM组件
//2.创建组件对象指针
//3.实例化
//----------
//4.open(pHttpReq->Open(_T("GET"),_T("http://pan.baidu.com"
),Async);)
//5.send(pHttpReq->Send(vtMissing);)
//6.Response(pHttpReq->get_ResponseText())
//----------
//7.释放实例化
//8.删除对象指针
//9.卸载COM组件
//初始化COM组件
	::CoInitialize(nullptr);
	CWinHttpRequest *pHttpReq = new CWinHttpRequest();
	BOOL bret = pHttpReq->CreateDispatch(_T("WinHttp.WinHttpRequest.5.1")/*__uuidof(WinHttpRequest)*/);
	if (!bret)
	{
		return ;
	}
	COleVariant asyn =  VARIANT_FALSE;
	pHttpReq->Open(_T("GET"),_T("http://pan.baidu.com"),asyn);
	pHttpReq->Send(vtMissing);
	CString str = pHttpReq->get_ResponseText();
	MessageBox(str);
	pHttpReq->ReleaseDispatch();
	delete pHttpReq;
	::CoUninitialize();
二.第二种方式( import+接口方式)
接口:IWinHttpRequest
#import "C:\\Windows\\System32\\winhttp.dll"
	::CoInitialize(nullptr);
	IWinHttpRequest *pHttpReq = nullptr;
	HRESULT hr = CoCreateInstance(__uuidof(WinHttpRequest),nullptr,CLSCTX_ALL,__uuidof(IWinHttpRequest),(LPVOID*)&pHttpReq);
	if (FAILED(hr))
	{
		::CoUninitialize();
		return ;
	}
	hr = pHttpReq->Open(_T("GET"),_T("https://mail.qq.com/cgi-bin/loginpage"));
	if (FAILED(hr))
	{
		pHttpReq->Release();
		::CoUninitialize();
		return ;
	}
	hr = pHttpReq->Send();
	if (FAILED(hr))
	{
		pHttpReq->Release();
		::CoUninitialize();
		return ;
	}
	CString strText = pHttpReq->ResponseText;
	MessageBox(strText);
	pHttpReq->Release();
	::CoUninitialize();
三.第三种方式( import+智能指针包装类的方式)
::CoInitialize(nullptr);
	IWinHttpRequestPtr  pHttpReq = nullptr;
	HRESULT hr = pHttpReq.CreateInstance(__uuidof(WinHttpRequest));
	if (FAILED(hr))
	{
		::CoUninitialize();
		return ;
	}
	hr = pHttpReq->Open(_T("GET"),_T("https://mail.qq.com/cgi-bin/loginpage"));
	if (FAILED(hr))
	{
		//pHttpReq.Release();
		::CoUninitialize();
		return ;
	}
	hr = pHttpReq->Send();
	if (FAILED(hr))
	{
		//pHttpReq.Release();
		::CoUninitialize();
		return ;
	}
	CString strText = pHttpReq->ResponseText;
	MessageBox(strText);
	//pHttpReq.Release();
	::CoUninitialize();
}
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号