最近在做项目过程中,用到了读取网页(现在以百度首页为例)上的数据,代码如下:
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);
最终程序运行正常。
本文讨论了在使用CInternetSession类的OpenURL函数时遇到的错误及解决方法,通过调整URL格式避免了错误12006的发生。

1120

被折叠的 条评论
为什么被折叠?



