我在Ubuntu Linux上的服务器中使用cpprest。到目前为止,我已经能够处理请求,并以JSON响应进行回复。
我接受的请求之一需要使用PDF文件进行响应。我看到http_request类具有一个接受异步流的Reply()方法。为了我的一生,我不知道如何将此流与磁盘上的PDF文件关联。
utility::string_t pdfFilename = getPdfFilename();
concurrency::streams::istream stream; // how do associate my pdfFilename?
request.reply(web::http::status_codes::OK, stream, "application/pdf");
答案 0 :(得分:0)
我希望你已经知道了。这是我回复本地pdf文件的方式
void replyPdf(web::http::http_request message, string_t file_name)
{
concurrency::streams::fstream::open_istream(file_name, std::ios::in)
.then([=](concurrency::streams::istream is)
{
web::http::http_response response(web::http::status_codes::OK);
response.headers().add(L"Content-Disposition", U("inline; filename = \"") + file_name + U("\""));
response.set_body(std::move(is), U("application/pdf"));
message.reply(response).then([](pplx::task<void> t) {});
});
}