-1

我正在寻找一些技巧,如何通过 HTTP 从远程服务器读取字符串并将其保存到字符串中。目前,我的目标是阅读第一个字符。

@edit:我已经做了什么:

我认为 curl 可能是实现这一目标的正确工具。

汇编:

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

我的主文件.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 上引入 Sockets 的好例子:

为初学者编写 C++ 中的 Windows TCP 套接字

如果您想完全避免学习套接字并真正很好地控制正在发生的事情,您可以只使用各种 URL 下载器:

下载 C 中的 URL

但是,如果您需要速度胜过其他任何事情,使用URLOpenStream可能会给您最快的结果。

因此,在您拥有一个接收 html 文本的套接字之后,您就可以解析 html 并将找到的内容转换为适当的变量。

于 2012-06-09T18:35:33.843 回答