-1

HTTP経由でリモートサーバーから文字列を読み取り、文字列に保存する方法のヒントを探しています。現在、私は最初の文字を読むことを目指しています。

@編集:私がすでに行ったこと:

カールはそれを達成するための正しいツールかもしれないと思いました。

コンパイル:

1>------ Rebuild All started: Project: cURL, Configuration: Debug Win32 ------
1>  stdafx.cpp
1>  cURL.cpp
1>  cURL.vcxproj -> C:\Users\Lukasz\Documents\Visual Studio 2010\Projects\cURL\Debug\cURL.exe
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

しかし、デバッグ後:

The procedure entry point sasl_errdetail could not be located in the dynamic link library libsasl.dll

私のメインfile.cpp:

// cURL.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


#include <curl.h>
#include <cstdio>
#include <string>


std::string buffer;

size_t curl_write( void *ptr, size_t size, size_t nmemb, void *stream)
{
buffer.append((char*)ptr, size*nmemb);
return size*nmemb;
}

int main(int argc, char **argv)
{
CURL *curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_URL, "http://google.com"); 
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, curl_write);
curl_easy_perform(curl);
curl_easy_cleanup(curl);
fwrite( buffer.c_str(), buffer.length(), sizeof(char), stdout);
return 0;
}
4

3 に答える 3

1

私も同じ問題を抱えていました!!

dlldll.comからlibsasl.dllをダウンロードし、同じエラーが発生します。私は彼らが古いバージョンのdllを持っていると思ったので、私は新しいバージョンをダウンロードしました、そしてそれは魅力のように働きました。

http://theetrain.ca/tech/files/libsasl.dllからバージョンを取得したことはありません

于 2012-06-18T22:59:26.937 に答える
0
  1. ファイルを開きます。
  2. fgetcまたはistream::read関数を使用します。
  3. 文字を適切なブール値に変換します。
  4. ファイルを閉じます。

HTMLファイルはテキストファイルのように読み取ることができます。

HTMLファイルの解析は別の問題です。

于 2012-06-09T18:31:55.463 に答える
0

サーバー/クライアントのセットアップでHTMLを受信するには、ソケットに接続し、ソケットを介して送信されるメッセージを処理する必要があります。

これは、Windowsにソケットを導入するよくできた例です。

初心者向けのC++でのWindowsTCPソケットのプログラミング

ソケットの学習を完全に避けて、何が起こっているのかを本当にうまく制御したい場合は、次のようなURLダウンローダーを使用できます。

CでURLをダウンロードする

ただし、URLOpenStreamを使用すると、他の何よりも高速が必要な場合に、おそらく最速の結果が得られます。

したがって、htmlのテキストを受け取るソケットができたら、htmlを解析して、見つけたものを適切な変数に変換できます。

于 2012-06-09T18:35:33.843 に答える