2012年7月5日星期四
IWinHttpRequest.Cpp
//本文改编自msdn:http://msdn.microsoft.com/en-us/library/aa384045(VS.85).aspx
//#include <windows.h>
//#include <stdio.h>
//#include <objbase.h>
#include "httprequest_h.h"
/*关于这个文件有三种实现的办法:
1。网上搜索相应的文件,http://www.koders.com上面有。
2。导入相应的dll,如:#import <winhttp.dll>
3。编译相应的idl文件。先导入idl,编译,再导入.h文件。
*/
//#pragma comment(lib, "ole32.lib")
//#pragma comment(lib, "oleaut32.lib")
const IID IID_IWinHttpRequest ={0x06f29373,0x5c5a,0x4b54,{0xb0, 0x25, 0x6e, 0xf1, 0xbf, 0x8a, 0xbf, 0x0e}};
int main()
{
HRESULT hr = CoInitialize( NULL );
CLSID clsid;
hr = CLSIDFromProgID(L"WinHttp.WinHttpRequest.5.1",&clsid);
IWinHttpRequest * pIWinHttpRequest = NULL;
hr = CoCreateInstance(clsid,NULL,CLSCTX_INPROC_SERVER,IID_IWinHttpRequest,(void **)&pIWinHttpRequest);
VARIANT varFalse;//初始化变量供下面使用。否则出错。
VariantInit(&varFalse);
V_VT(&varFalse) = VT_BOOL;
V_BOOL(&varFalse) = VARIANT_FALSE;
BSTR bstrMethod = SysAllocString(L"GET");
BSTR bstrUrl = SysAllocString(L"http://microsoft.com");
hr = pIWinHttpRequest->Open(bstrMethod,bstrUrl,varFalse);// Open WinHttpRequest.
//SysFreeString(bstrMethod);//释放
//SysFreeString(bstrUrl);//释放
VARIANT varEmpty;//初始化变量供下面使用。否则出错。
VariantInit(&varEmpty);
V_VT(&varEmpty) = VT_ERROR;
hr = pIWinHttpRequest->Send(varEmpty);// Send Request.//这个很费时间.
BSTR bstrResponse = NULL;
hr = pIWinHttpRequest->get_ResponseText(&bstrResponse); // Get Response text.
wprintf(L"%.256s",bstrResponse);// Print the response to a console.
//if (pIWinHttpRequest) pIWinHttpRequest->Release();// Release memory.
//if (bstrResponse) SysFreeString(bstrResponse);
CoUninitialize();
return 0;
}
//made at 2012.04.16
‘vbs代码如下:
Set WinHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
WinHttpReq.open "get","http://correy.webs.com",false
WinHttpReq.Send
WScript.Echo WinHttpReq.ResponseText
'还有PUT,post功能,暂未加上。
订阅:
博文评论 (Atom)
没有评论:
发表评论