C++关于学习VC驿站 GET 和 POST第三课
第三课:GET登录的方法
1.获取网页源码的步骤
1-1:COM组件初始化
1-2:定义WinHttp组件
1-3:创建并实例化WinHttp组件
1-4:调用Open方法打开链接
1-5:调用Send方法发送请求
1-6:获取ResposeText返回的文本
1-7:释放WinHttp组件对象
1-8:释放WinHttp对象指针
1-9:卸载COM组件
2.实例化COM组件的几种方法/////////////////推荐用第三种
1-1:类型库生成包装类的方式:优点->使用方便,贴近C++,缺点->COM接口的默认参数必须填写,不灵活
1-2:import+接口方式:优点->COM接口的申请与释放自己控制,很灵活,缺点->控制不好,引起内存泄漏,且COM组件的实例化参数较多
1-3:import+智能指针包装类的方式:优点->智能指针,使用方便,不用担心内存泄漏,COM组件实例化简单,可使用COM组件的默认缺省参数
3.各种ID的区别:GUID,UUID,CLSID,IID
在微软的COM中GUID和UUID,CLSID,IID是一个东西,只不过各自代表的意义不同
UUID:代表COM组件
CLSID:代表COM组件中的类
IID:代表COM组件类中的导出接口
第三课:GET登录的方法1
右键项目->添加类/类向导都可以->选择文件和图像中的位置,找到winhttpcom.dll(教程中用的winhttp.dll无法加载,这个一样使用),这里的坑要注意;如果加载其他DLL文件有的需要到CMD中注册,https://zh.wikihow.com/%E6%B3%A8%E5%86%8CDLL?open_ccpa=1 ;网上很多regsvr32 地址,

| //下方是老师的源码,照抄的 | //新建的MFC文件测试情况,还是很好的,数据都反馈回来了,(百度源码,数据源码可能太大,messagebox()函数不显示,通过调试看的反馈源码) |
|
void button() { CoInitialize(NULL); CWinHttpRequest *pHttpReq=new CWinHttpRequest; BOOL bRet=pHttpReq->CreateDispatch(_T("WinHttp.WinHttpRequest.5.1")); if(!bRet) return;
//CLSID clsid={0}; //CLSIDFromProgID(_T("WinHttp.WinHttpRequest.5.1"),&clsid); //BOOL bRet=pHttpReq->CreateDispatch(clsid);
COleVariant Async=VARIANT_FALSE; pHttpReq->Open(_T("GET"),_T("http://www.baidu.com/"),Async); pHttpReq->Send(vtMissing); CString strRsp=pHttpReq->get_ResponseText(); MessageBox(strRsp); } |
void Ctest1Dlg::OnBnClickedButton1() CWinHttpRequest *pHttpReq = new CWinHttpRequest; //CLSID clsid={0}; COleVariant Async = VARIANT_FALSE;
} |
浙公网安备 33010602011771号