我正在关注下面的基本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 ++已经有一段时间但是我确信我已经使用了&lt;&lt;操作员之前。我是否缺少使其成功的包含?
答案 0 :(得分:3)
您不能像这样重定向标准输出:为了使<<
运算符起作用,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