我正在遵循下面的基本libcurl curlcpp示例

#include <curlpp/cURLpp.hpp>
#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>

#include <string>
#include <sstream>
#include <iostream>

// RAII cleanup
curlpp::Cleanup myCleanup;

// standard request object.
curlpp::Easy myRequest;

int main(int, char**)
{
    // Set the URL.
    myRequest.setOpt(new curlpp::options::Url(std::string("http://www.wikipedia.com")));

    // Send request and get a result.
    // By default the result goes to standard output.
    // Here I use a shortcut to get it in a string stream ...
    std::ostringstream os;
    os << myRequest.perform();

    std::string asAskedInQuestion = os.str();

    return 0;
}

自从我使用c++以来已经有一段时间了,但是我确定我以前使用过<

最佳答案

您不能这样重定向标准输出:为了使<<运算符起作用,myRequest.perform()成员函数需要返回其输出-作为string,或作为另一个对象,该对象存在<<运算符对于输出流的重载。

由于myRequest.perform()无效,因此您需要使用其他某种机制告诉curlpp将其写入字符串流。在curlpp中,可以通过设置写流选项来完成-像这样:

std::ostringstream os;   // Here is your output stream
curlpp::options::WriteStream ws(&os);
myRequest.setOpt(ws);    // Give it to your request
myRequest.perform();     // This will output to os

10-06 09:28