0

WinInet 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 ライブラリのみを使用する必要があります。それ以外は自由にやりたい放題です。

4

1 に答える 1

1

一度に 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;
}
于 2010-08-05T20:54:02.307 に答える