项目中需要获取http网页内容,一开始使用了CHttpSession的方法,但是只能同步使用,网速慢了界面就卡在那里了,用户体验很不好.便考虑使用异步http的方式,Winnet的异步方式太繁琐,时间不允许去深究.突然发现vb中能使用MS ITC控件,便想到MFC中也能用.可是调用Execute方法时不会传参了,网上清一色vb的教程,摸索了半天,实现方法如下:
1:关联一个ITC的控件变量m_InetCtrl
2:构造http请求
TCHAR* aurl=_T("http://www.baidu.com");
_variant_t url=aurl;
_variant_t method=_T("GET");
m_intCtrl.Execute(url,method,url,url);
3:在响应事件中接收
if (State==CInet1::icResponseCompleted)
{
_variant_t var;
LONG len=0;
COleVariant ret=m_intCtrl.GetChunk(&len,var);
USES_CONVERSION;
CString strLen=OLE2A(ret.bstrVal);;
AfxMessageBox(strLen);
}
搞定收工,
BTW:VC真是麻烦啊