我刚刚接触到curlpp,但我无法看到我的代码出现了什么问题,所以我希望有人可以帮助我。
我在C ++中使用curlpp进行Facebook Graph查询。这意味着Facebook服务器将返回Json数据。
我的代码如下:
#include <curlpp/cURLpp.hpp>
#include <curlpp/Easy.hpp>
#include <curlpp/Options.hpp>
#include <curlpp/Exception.hpp>
...
curlpp::Easy myRequest;
bool error = false;
QString result = "";
try {
// Setting the URL to the Facebook server with the query
curlpp::options::Url myUrl(request->getURL().toStdString());
// Creating stream for the result
std::ostringstream os;
curlpp::options::WriteStream ws(&os);
// setting my opts: url and output stream
myRequest.setOpt(myUrl);
myRequest.setOpt(ws);
// perform the request
myRequest.perform();
// stream the result into my stream
os << myRequest;
result = QString::fromStdString(os.str());
} catch (curlpp::RuntimeError &e) {
error = true;
qWarning() << "Error in HttpRequest execution:" << e.what();
} catch (curlpp::LogicError &e) {
error = true;
qWarning() << "Error in HttpRequest execution:" << e.what();
} catch (...) {
error = true;
qWarning() << "Unknown error in HttpRequest execution.";
}
我现在的问题是结果流(以及我的结果QString)确实包含Facebook Graph服务器发送的Json对象,但是两次。 这意味着,直接两次相同的对象,一个接一个。这使得Json无效。
但这不是服务器提供的。当我使用openssl命令行工具检查它并自己发出HTTP Get请求时,它不是我得到的。
我的代码出了什么问题?
最好,迈克尔