我正在遵循下面的基本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