2010-08-04 64 views
0

我想使用WinInet API簡單訪問一個頁面。一旦我訪問它,我希望能夠將內容讀取到一個字符串中。我已經初始化了根節點。這是我到目前爲止:幫助InternetOpenUrl和InternetReadFile <WinInet.h> API

HINTERNET hChildURL = InternetOpenUrl(hInternetRoot, 
             LPCTSTR(CString("http://www.google.com/")), 
             NULL, 
             0, 
             0, 
             0); 

在此之後,我知道你必須利用InternetReadFile實際拉出數據。有人可以提供一個如何做到這一點的詳細例子。我不是特別熟悉C風格的文件功能和使用緩衝區,所以請把它放在我身上。

另一個說明,是否有一個不同的或更現代的Windows API,我應該使用而不是?從長遠來看,我已經被分配開發一個應用程序作爲客戶端,並通過HTTP和HTTPS與遠程服務器發送/接收數據。我在這裏走正確的道路嗎?

編輯:更具體的要求:它必須用C++編寫,它必須與Win XP及以後版本兼容,並且它只能使用標準的Windows庫。除此之外,我可以隨心所欲地按照自己的意願去做。

回答

1

嗯,你只是一次讀它在一個塊:

HINTERNET Request = InternetOpenUrl(...); 
if(Request != NULL) 
{ 
    BYTE Buffer[8192]; 
    DWORD BytesRead; 
    while(InternetReadFile(Request, Buffer, 8192, &BytesRead) && BytesRead != 0) 
    { 
     // do something with Buffer 
    } 
    InternetCloseHandle(Request); 
    Request = NULL; 
} 
+0

w00t謝謝,我不習慣這一切低級文件閱讀BIZZ。我被Python和Java寵壞了。 – themaestro 2010-08-06 12:05:18