2017-06-29 4 views
0

httpクライアントを作成するためにcpprestsdkを使用しています。cpprestsdk(casablanca)jsonの値をstd :: vector <unsigned char>

web::http::http_request req(method); 
req.set_body(data); <<-- data == std::vector<unsigned char> 

を要求し、サーバに送信するためにそれを置くためにstd::vector<unsigned char>

web::json::value obj; 
obj[U("1")] = web::json::value(U("123")); 
obj[U("2")] = web::json::value(U("321")); 

:私はこのようなweb::json::valueを変換する必要があります。私はweb::json::valueutility::string_tを送信する方法を知っていますが、バイトのベクトルに問題があります。 私の質問はどのように変換するのですかweb::json::valuestd::vector<unsigned char>です。ありがとう。

答えて

0

まず、変換する必要がありますか? docsには、json :: valueのset_bodyオーバーロードがあると言われています。

もしそうなら、あなたはutf-8文字列に変換することができます(これはset_bodyのコードが行います)、ベクトルにコピーします。

auto text = utility::conversions::to_utf8string(obj.serialize()); 

std::vector<unsigned char> data(text.size()); 
std::transform(text.begin(), text.end(), data.begin(), 
    [](char ch) 
{ 
    return static_cast<unsigned char>(ch); 
}); 
+0

解決策のような音。 – definename

関連する問題