我正在编写一个使用 Casablanca REST API 的本机 Windows C++ 应用程序。我正在尝试将整数值从 C++ 应用程序传递到将在云中运行的 Java servlet。在进行GET
REST 调用时,Casablanca API 要求我使用 anstd::u32string
来存储查询参数。对我来说,为什么要使用 UTF-32 编码来确保可以支持每种类型的字符,这有点直观。对我来说不直观的是如何进行这种转换。
这是我当前的代码:
__int64 queryID = 12345689; // the integer to pass
std::stringstream stream;
stream << queryID;
std::string queryID_utf8(stream.str()); // the integer as a UTF-8 string
std::wstring_convert<std::codecvt_utf8<char32_t>, char32_t> convert;
std::u32string queryID_utf32 = convert.from_bytes(queryID_utf8); // UTF-32 string
http_client client(U("http://localhost:8080/MyJavaWebApp"));
uri_builder builder(U("/getContent"));
builder.append_query(U("queryID"), queryID_utf32.c_str());
client.request(methods::GET, builder.to_string()) // etc.
一旦我收到这个 UTF-32 编码的字符串,我也不完全确定我应该如何处理 Java 端的事情。任何专业的 C++ 建议都将在此不胜感激。