本文整理汇总了C++中poco::net::HTTPResponse::getContentLength方法的典型用法代码示例。如果您正苦于以下问题:C++ HTTPResponse::getContentLength方法的具体用法?C++ HTTPResponse::getContentLength怎么用?C++ HTTPResponse::getContentLength使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类poco::net::HTTPResponse
的用法示例。
在下文中一共展示了HTTPResponse::getContentLength方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: sendCommandJSON
bool sendCommandJSON(const std::string & method, Poco::Dynamic::Var & output, const std::vector<Poco::Dynamic::Var> & params = std::vector<Poco::Dynamic::Var>())
{
// Create request
Poco::Net::HTTPRequest request(Poco::Net::HTTPRequest::HTTP_POST, "/jsonrpc");
// Authorization
request.set("Authorization", "Basic bnpiZ2V0OnRlZ2J6bg==");
// Create body
Poco::Dynamic::Var body = Poco::Dynamic::Struct<std::string>();
body["method"] = method;
body["id"] = "sendCommandJSON";
std::vector<Poco::Dynamic::Var> params_;
params_.push_back("callback");
for (std::vector<Poco::Dynamic::Var>::const_iterator it = params.begin(); it != params.end(); ++it)
{
params_.push_back(*it);
}
body["params"] = params_;
std::string body_ = MyVideoCollection::JSON::stringify(body);
request.setContentLength(body_.length());
// Send request
Poco::Net::HTTPClientSession session("127.0.0.1", port_);
session.sendRequest(request) << body_ << std::flush;
// Receive response
Poco::Net::HTTPResponse response;
std::istream & responseStream = session.receiveResponse(response);
std::size_t bytes = response.getContentLength();
std::stringstream response_;
while (bytes > 0 && responseStream.good())
{
char buf[4096];
responseStream.read(buf, std::min(bytes, (std::size_t)4096));
std::size_t gcount = responseStream.gcount();
bytes -= gcount;
response_ << std::string(buf, gcount);
}
// Parse JSON
output = MyVideoCollection::JSON::parse(response_);
// Result?
if (!output.isStruct())
{
output.empty();
return false;
}
output = output["result"];
return true;
}