最近在做项目过程中,用到了读取网页(现在以百度首页为例)上的数据,代码如下:
CInternetSession session("HttpClient");
char * url = "www.baidu.com";
CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);
在CInternetSession类OpenURL函数一直爆发异常,经查看,GetLastError报错12006,经查阅MSDN才明白:
CStdioFile* OpenURL( LPCTSTR pstrURL
, DWORD_PTR dwContext = 1
, DWORD dwFlags = INTERNET_FLAG_TRANSFER_ASCII
, LPCTSTR pstrHeaders = NULL
, DWORD dwHeadersLength = 0 );
对第一个参数的解释为:A pointer to the name of the URL to begin reading. Only URLs beginning with file:, ftp:, gopher:, or http: are supported. ASSERTS if pszURL is NULL.
恍然大悟,将代码修改为:
CInternetSession session("HttpClient");
char * url = "http://www.baidu.com";
CHttpFile* pfile = (CHttpFile *)session.OpenURL(url);
最终程序运行正常。