gpt4 book ai didi

c++ - 如何从字符串创建 web::uri 以放入 client.connect()?

转载 作者:搜寻专家 更新时间:2023-10-31 00:54:48 25 4
gpt4 key购买 nike

client.connect(web::uri) 是必需的,但在查看 web::uri 后,它不会接受字符串。 api 似乎说它可以接受字符串,但它不会,我也不知道为什么。

#include <iostream>
#include <stdio.h>
#include <cpprest/ws_client.h>

using namespace std;
using namespace web;
using namespace web::websockets::client;

int main(int argc, char **args) {

uri link = uri("ws://echo.websocket.org"); //PROBLEM LINE
websocket_client client;
client.connect(link).wait();

websocket_outgoing_message out_msg;
out_msg.set_utf8_message("test");
client.send(out_msg).wait();

client.receive().then([](websocket_incoming_message in_msg) {
return in_msg.extract_string();
}).then([](string body) {
cout << body << endl;
}).wait();

client.close().wait();

return 0;
}

最佳答案

快速浏览 source uri 显示有一个构造函数接受一个字符串参数,但它不是一个简单明了的 C 类型字符串:

_ASYNCRTIMP uri(const utility::char_t *uri_string);

如果您在 Windows 下构建它,您可能会发现 utility::char_t 实际上是 wchar_t,因此您可以在 URI 字符串前加上 L 以将其标记为宽字符 unicode,如下所示:

uri link = uri(L"ws://echo.websocket.org");

我相信库提供了一个方便的跨平台字符串宏,U()。看看 FAQ .我假设它的工作方式有点像这样:

uri link = uri(U("ws://echo.websocket.org"));

关于c++ - 如何从字符串创建 web::uri 以放入 client.connect()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44112087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com