最近在做項目過程中,用到了讀取網頁(現在以百度首頁爲例)上的數據,代碼如下:
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);
最終程序運行正常。