2015-12-09 6 views
1

iam разработка службы отдыха на C++ для wordpress-клиента в проекте для дальнейшего обучения. Служба написана на C++ с использованием casablanca в качестве основы для и обслуживания и взаимодействия с клиентом через JSON.C++ Касабланка Рестсервис отправить PDF-файлы в Wordpress Клиенты

Теперь мне нужно отправить PDF-файлы друг другу. Can sb. скажите мне метод или пример, чтобы сделать это, не отправляя прямые ссылки для загрузки?

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(); 
} 
+0

Добро пожаловать в переполнение стека! В общем случае вопросы «что лучше всего» не подходят для этого сайта. Можете ли вы показать нам код, который вы пробовали? – Harangue

+0

Вот вам, теперь мне нужна возможность отправить файл PDF через JSON, чтобы показать его поверх Wordpress. – Cazzador

ответ

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);