当前位置: 首页 > news >正文

c++ MES 对接(XML、JSON、SOAP)

🗑️ 清空
//MES系统对接可以使用多种协议,包括XML、JSON和SOAP等。

//以下是使用C++语言进行MES系统对接的示例代码:

//1. XML协议对接:

//c++
#include <iostream>
#include <string>
#include <vector>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>

using namespace std;
using boost::property_tree::ptree;

// 解析XML响应数据
vector<string> parse_xml_response(const string& xml_response)
 {
    vector<string> result;
    ptree pt;
    stringstream ss(xml_response);
    read_xml(ss, pt);
    for (auto& item : pt.get_child("response"))
   {
        result.push_back(item.second.data());
    }
    return result;
}

// 生成XML请求数据
string generate_xml_request(const string& operation, const vector<string>& params) 
{
    ptree pt;
    pt.put("request.operation", operation);
    for (int i = 0; i < params.size(); ++i) 
    {
        pt.put("request.param" + to_string(i + 1), params[i]);
    }
    stringstream ss;
    write_xml(ss, pt);
    return ss.str();
}

int main() 
{
    // 发送XML请求
    string xml_request = generate_xml_request("get_data", {"param1", "param2"});
    string xml_response = send_xml_request(xml_request);

    // 解析XML响应
    vector<string> result = parse_xml_response(xml_response);
    for (const auto& item : result) 
    {
        cout << item << endl;
    }
    return 0;
}
//

//2. JSON协议对接:

//c++
#include <iostream>
#include <string>
#include <vector>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/json_parser.hpp>

using namespace std;
using boost::property_tree::ptree;

// 解析JSON响应数据
vector<string> parse_json_response(const string& json_response) 
{
    vector<string> result;
    ptree pt;
    stringstream ss(json_response);
    read_json(ss, pt);
    for (auto& item : pt.get_child("response")) 
   {
        result.push_back(item.second.data());
   }
    return result;
}

// 生成JSON请求数据
string generate_json_request(const string& operation, const vector<string>& params) 
{
    ptree pt;
    pt.put("request.operation", operation);
    for (int i = 0; i < params.size(); ++i) 
    {
        pt.put("request.param" + to_string(i + 1), params[i]);
    }
    stringstream ss;
    write_json(ss, pt);
    return ss.str();
}

int main() 
{
    // 发送JSON请求
    string json_request = generate_json_request("get_data", {"param1", "param2"});
    string json_response = send_json_request(json_request);

    // 解析JSON响应
    vector<string> result = parse_json_response(json_response);
    for (const auto& item : result) 
    {
        cout << item << endl;
    }
    return 0;
}
//

//3. SOAP协议对接:

//c++
#include <iostream>
#include <string>
#include <vector>
#include <boost/property_tree/ptree.hpp>
#include <boost/property_tree/xml_parser.hpp>

using namespace std;
using boost::property_tree::ptree;

// 解析SOAP响应数据
vector<string> parse_soap_response(const string& soap_response) 
{
    vector<string> result;
    ptree pt;
    stringstream ss(soap_response);
    read_xml(ss, pt);
    for (auto& item : pt.get_child("soap:Envelope.soap:Body.response")) 
   {
        result.push_back(item.second.data());
    }
    return result;
}

// 生成SOAP请求数据
string generate_soap_request(const string& operation, const vector<string>& params) 
{
    ptree pt;
    pt.put("soap:Envelope.soap:Body.request.operation", operation);
    for (int i = 0; i < params.size(); ++i) 
    {
        pt.put("soap:Envelope.soap:Body.request.param" + to_string(i + 1), params[i]);
    }
    stringstream ss;
    write_xml(ss, pt);
    return ss.str();
}

int main() 
{
    // 发送SOAP请求
    string soap_request = generate_soap_request("get_data", {"param1", "param2"});
    string soap_response = send_soap_request(soap_request);

    // 解析SOAP响应
    vector<string> result = parse_soap_response(soap_response);
    for (const auto& item : result) 
   {
        cout << item << endl;
    }
    return 0;
}
//

//以上代码仅为示例,具体实现需要根据实际情况进行调整。

http://www.lryc.cn/news/93168.html

相关文章:

  • idea导入java web项目带jar
  • 【第55天|● 392.判断子序列 ● 115.不同的子序列 】
  • Dockerfile创建镜像
  • 基于 opencv 的人脸识别上课考勤系统,附源码,可作为毕业设计
  • .editorconfig 配置
  • Spring 高级依赖注入 —— Bean的延迟依赖查找功能,ObjectFactory 和 ObjectProvider
  • VSCode--Config
  • 代码随想录刷题第48天|LeetCode198打家劫舍、LeetCode213打家劫舍II、LeetCode337打家劫舍III
  • C# NTS 获取MuliiLineString中的所有线
  • CodeWhisperer插件使用体验
  • 机器学习笔记 - 多实例学习(MIL)弱监督学习
  • SQL Server 2008 定时自动备份和自动删除方法
  • 代码生成器实现
  • 【Python基础】Python函数(基本函数)
  • Vue3 + TS + Vite —— 大屏可视化 项目实战
  • EasyExcel 批量导入并校验数据
  • 亚马逊、Allegro卖家建立属于自己的测评系统,实现批量优质账号养成
  • springboot的目录结构作用
  • 微信小程序基础使用-请求数据并渲染
  • 代码随想录训练营Day55| 392.判断子序列 ;115.不同的子序列
  • 网络作业9【计算机网络】
  • C++ QT 上传图片至mysql数据库
  • 2023去水印小程序saas系统源码修复独立版v1.0.3+uniapp前端
  • 【ChatGPT】数据科学 ChatGPT Cheat Sheet 书籍分享(阿里云盘下载)
  • 使用 Docker-compose 搭建lnmp
  • chatgpt赋能python:Python中的矩阵合并方法:介绍和使用方法
  • Java动态代理:优化静态代理模式的灵活解决方案
  • 四种Bootloader程序安全机制设计
  • 【DBA 警世录之习惯性命令---读书笔记】
  • Vue中如何进行状态持久化(LocalStorage、SessionStorage)