C ++ Casablanca Restservice将PDF文件发送到Wordpress客户端

时间:2015-12-09 05:36:34

标签: json sendfile casablanca

我在c ++中为一个项目中的wordpress客户端开发一个休息服务,以便进一步教育。 该服务是用c ++编写的,使用casablanca作为框架,服务和客户端通过JSON进行通信。

现在我必须互相发送PDF文件。 可以某人告诉我一个方法或一个例子来做这个而不发送下载的直接链接?

http://casablanca.codeplex.com/

这是我启动服务器并添加支持方法的功能。

void Commanagement::Init(utility::string_t url, utility::string_t port)
{
    this->url = &url;
    this->port = &port;

    listener = new http_listener(U("http://localhost:4711"));
    listener->support(methods::GET, std::bind(&Commanagement::handle_GET, this, std::placeholders::_1));
    listener->support(methods::POST, std::bind(&Commanagement::handle_POST, this, std::placeholders::_1));
    listener->open().wait();
}

向我的客户发送JSON响应的示例。

void Commanagement::handle_POST(http_request message)
{
    ucout << message.extract_json().wait();
    auto paths = http::uri::split_path(http::uri::decode(message.relative_uri().path()));

    json::value postData;
    postData[L"id"] = json::value::number(13);
    postData[L"FirstVal"] = json::value::string(L"Baseball");
    postData[L"SomeVal"] = json::value::string(L"test");

    message.reply(web::http::status_codes::OK, postData.serialize()).wait();
}

1 个答案:

答案 0 :(得分:0)

文件可以在正文中序列化发送给客户端。

这只是一个例子,只有文件日期,没有标题,没有别的。

ifstream Stream;

Stream.open(FullFileName,std::ios::binary);
string Content, Line;

if (Stream)
{
    while (getline(Stream,Line))
    {
        Content += Line;
    }
}

Stream.close();
Request::request->set_body(Content);