【问题标题】:Sending and receiving strings over http via curl通过 curl 通过 http 发送和接收字符串
【发布时间】:2012-07-17 06:36:47
【问题描述】:

我有一种情况,我在服务器(Windows 机器)上的程序输出了一些字符串。我需要使用 curl 通过 HTTP 将这些字符串从服务器发送到客户端。发送后,我将在客户端以字符串形式接收数据,对其进行解码并执行后续操作。 我已经使用 berkely API 使用 C Sockets 实现了此功能,因为我对此很熟悉。但是由于某种原因,我不允许使用自己的程序。 我四处寻找,似乎 CURL 可以成为我的解决方案。但是,我对 curl 很陌生,似乎无法弄清楚如何实现此功能。在客户端,我发现这很有用可能是:

#include <stdio.h>
#include <curl/curl.h>

int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");

    /* Perform the request, res will get the return code */ 
    res = curl_easy_perform(curl);
    /* Check for errors */ 
    if(res != CURLE_OK)
      fprintf(stderr, "curl_easy_perform() failed: %s\n",
              curl_easy_strerror(res));

    /* always cleanup */ 
    curl_easy_cleanup(curl);
  }
  return 0;
}

我知道您必须使用回写功能来接收数据? 同样在客户端,我需要使用 curl 开发一个程序,每当服务器通过字符串发送时,它应该接收并解码它。任何指向与特定问题相关的教程的指针都将受到高度赞赏。或者,如果有人已经尝试过,我将非常感谢这里的任何帮助。 谢谢。

【问题讨论】:

    标签: c++ c http curl client-server


    【解决方案1】:

    看看他们网站上的这个示例代码。它详细说明了如何将响应数据写入内存区域而不是文件:

    http://curl.haxx.se/libcurl/c/getinmemory.html

    还可以看看 curl 网站上的通用教程:

    http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

    最后要考虑的一件事,如果使用 C++,你需要确保你的回调不是非静态成员函数(见这里libcurl - unable to download a file

    这至少应该让你开始。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 1970-01-01
      • 2013-03-12
      • 2015-02-04
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      相关资源
      最近更新 更多