6

我正在使用 casablanca C++ Rest 库来发出 HTTP 请求。

问题是这给出了一个实用程序::string_t 字符串作为输出,我找不到任何方法将它转换为经典的 std::string。有任何想法吗?

client.request(methods::GET).then([](http_response response)
{
  if(response.status_code() == status_codes::OK)
  {
    string_t s = response.extract_string().get();
  }
});
4

3 回答 3

11

根据您正在编译的平台,utility::string_t类型将被 typedef 为std::wstring(在 Windows 上)或std::string(在 Linux/OSX 上)。

要获得不受std::string平台限制的经典 utf-8,请查看utility::conversions::to_utf8string.

参考文件

于 2016-02-02T08:26:06.547 回答
2

如果你从 github 看到 C++ REST SDK 的文档,你会发现一个typedef

C++ Rest SDK - 实用程序命名空间参考

typedef std::string     string_t;

所以不需要转换它。两者都是同一类型。

于 2015-07-07T13:35:17.583 回答
2

在 Windows Phone 8.1 上有这样的定义:

typedef std::wstring     string_t;

我用这个:

string_t toStringT = U("sample");
std::string fromStringT(toStringT.begin(), toStringT.end());

或者:

std::string fromStringT(conversions::to_utf8string(toStringT));
于 2016-03-03T14:18:04.917 回答