gpt4 book ai didi

c++ - 使用 casablanca c++ rest sdk 发送接收

转载 作者:行者123 更新时间:2023-11-28 02:02:22 26 4
gpt4 key购买 nike

我刚开始使用 RESTful 编程,并尝试使用 Casablanca sdk ( https://github.com/Microsoft/cpprestsdk) 在 c++ 中编写程序。我知道我需要使用 GET、POST、PUT 和 DEL 方法来进行数据传输等。但我似乎无法找到任何有关如何执行此操作的示例。我目前需要从客户端向服务器发送一个整数值,并从服务器获得一个 bool 响应。我无法在 Casablanca 的文档或网络中找到任何好的示例。任何有关如何进行此简单传输的帮助将不胜感激。

最佳答案

花更多时间探索documentation互联网上的各种示例可能会为您提供答案。

基本上,您必须设置一个 http 监听器,作为服务器,它将监听特定 url 上的客户端请求。

然后客户端可以在该 url 上发送数据,与其通信。

不过,如果你想交换json格式的数据,

服务器看起来像这样

void handle_post(http_request request)
{
json::value temp;
request.extract_json() //extracts the request content into a json
.then([&temp](pplx::task<json::value> task)
{
temp = task.get();
})
.wait();
//do whatever you want with 'temp' here
request.reply(status_codes::OK, temp); //send the reply as a json.
}
int main()
{

http_listener listener(L"http://localhost/restdemo"); //define a listener on this url.

listener.support(methods::POST, handle_post); //'handle_post' is the function this listener will go to when it receives a POST request.
try
{
listener
.open() //start listening
.then([&listener](){TRACE(L"\nstarting to listen\n");})
.wait();

while (true);
}
catch (exception const & e)
{
wcout << e.what() << endl;
}
}

客户会是,

int main()
{
json::value client_temp;
http_client client(L"http://localhost");
//insert data into the json e.g : json::value(54)
client.request(methods::POST, L"/restdemo", object)
.then([](http_response response)
{
if (response.status_code() == status_codes::OK)
{
return response.extract_json();
}
return pplx::task_from_result(json::value());
})
.then([&client_temp ](pplx::task<json::value> previousTask)
{
client_temp = previousTask.get();
})
.wait();
}

您的服务器回复将存储到“client_temp”中

关于c++ - 使用 casablanca c++ rest sdk 发送接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933404/

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