c++ http服务器客户端程序-传输json解析json数据(2)
2021/4/24 12:26:36
本文主要是介绍c++ http服务器客户端程序-传输json解析json数据(2),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、服务器端的实例:
#include "stdafx.h"
#include <iostream>
#include <chrono>
#include <cstdio>
#include "httplib.h"
using namespace httplib;
#include "rapidjson.h"
#include "prettywriter.h" // for stringify JSON
#include "document.h"
using namespace std;
string ArrayToJson()
{
using namespace rapidjson;
StringBuffer sb;
PrettyWriter<StringBuffer> writer(sb);
writer.StartArray();
writer.StartObject();
writer.Key("name");
writer.String("xiaoming");
writer.EndObject();
writer.StartObject();
writer.Key("name");
writer.String("xiaohua");
writer.EndObject();
writer.EndArray();
return sb.GetString();
}
int main()
{
string strJson = ArrayToJson();
ParseArray(strJson);
Server svr;
if (!svr.is_valid())
{
printf("server has an error...\n");
return -1;
}
svr.Get("/hi", [&](const Request& /*req*/, Response& res)
{
res.set_content(strJson, "text/plain");
});
svr.Get("/stop",
[&](const Request& /*req*/, Response& /*res*/) { svr.stop(); });
svr.listen("localhost", 1234);
int yy = 55;
}
生成的json的数据如下:
[
{
"name": "xiaoming"
},
{
"name": "xiaohua"
}
]
2、客户端连接服务器端实例如下:
#include "stdafx.h"
#include <iostream>
#include "httplib.h"
#include <iostream>
using namespace std;
#include "rapidjson.h"
#include "prettywriter.h" // for stringify JSON
#include "document.h"
using namespace std;
void ParseArray(string strJson)
{
//创建解析对象
rapidjson::Document doc;
//首先进行解析,没有解析错误才能进行具体字段的解析
if (!doc.Parse(strJson.data()).HasParseError())
{
const rapidjson::Value& docArray = doc.GetArray();
for (int i = 0; i < docArray.Size(); ++i)
{
string strValue = docArray[i]["name"].GetString();
}
}
}
int main()
{
httplib::Client cli("localhost", 1234);
if (auto res = cli.Get("/hi"))
{
cout << res->status << endl;
cout << res->get_header_value("Content-Type") << endl;
cout << res->body << endl;
//解析当前的json
ParseArray(res->body);
}
else
{
}
system("pause");
}
至此,一个简单的http服务器端客户端通信传输json数据实例就完成了
这篇关于c++ http服务器客户端程序-传输json解析json数据(2)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Vue新手入门教程:从零开始学习Vue框架
- 2024-11-23如何集成Ant Design Vue的图标
- 2024-11-23如何集成Ant Design Vue图标
- 2024-11-23使用vue CLI快速搭建Vue项目教程
- 2024-11-23Vue CLI多环境配置简单教程
- 2024-11-23Vue3入门教程:轻松搭建你的第一个Vue3应用
- 2024-11-23Vue3+Vite快速上手指南
- 2024-11-23Vue3阿里系UI组件入门指南
- 2024-11-23Vue3的阿里系UI组件入门指南
- 2024-11-23Vue3公共组件入门教程