C++软件连接MES系统(CURL方式)

本博客参考意义

之前做项目需要对接MES管理系统,对于视觉或者电控算法工程师而言,和工业系统的对接是十分必要的。一般而言,现在的工业MES系统是Java工程师使用SQL开发的并具备可视化功能,但是常使用C++或者C#开发软件的我们该如何对接呢?答案是:接口。(关于接口这个名词我真的不想吐槽了,曾经我和Java工程师聊了一下午,发现俩人驴唇不对马嘴,有机会我会专门写篇搞笑技术博客吐槽)Java工程师提供一个接口给我,并且通过JSON格式传递信息。在这里接口指的是局域网下面一个网址,只需要打开这个网址,更改里面的字符,包含你的状态码便可以实现与MES的对接了。当然,MES的对接方式还有webservice方式等。

CURL库打开接口

C++提供了CURL库访问一个网址,使用CURL库只需要把文件加入到相关项目文件中,包含头文件 即可。这里提供了一个CURL库的安装包:
C++Curl

CURL库相关函数说明

//初始化libcurl
curl_global_init();

//打印当前curl库的版本
char* curl_version();

//初始化一个CURL的指针,最后还要用curl_easy_cleanup清理
CURL* curl_easy_init();

//一般curl_easy_init()代表一个会话的开始
//它会返回一个CURL*对象,所以要清理,例如:
CURL* curl=curl_easy_init();
curl_easy_cleanup(curl);

//最重要的函数:
CURLcode curl_easy_setopt(CURL* handle,CURLoption optionparameter); 

/*几乎所有的curl程序都调用这个函数,curl库调用此函数
会有不同的行为(函数重载)对这个函数内的部分参数介绍
 1.CURLOPT_URL,设置访问URL
curl_easy_setopt(curl,CURLOPT_URL,"这里写网址");
  2.CURLOPT_POSTFIELDS,以post方式发送数据
curl_easy_setopt(curl,CURLOPT_POSTFIELDS,"name=设备启动");
  3.查看打开网页后返回的数据
curl_easy_setopt(curl,CURLOPT_WRITEDATA,&out);*/

CURLcode curl_easy_perform(CURL* handle);
//这个函数在curl_easy_setopt后调用,perform就像一个舞台,让设置的option运行起来;
//例如:
CURLcode res=curl_easy_perform(curl);
/*这里状态码res的具体含义有:
1.CURLE_OK
一切都好
2.CURLE_UNSUPPORTED_PROTOCOL
不支持的协议,由URL的头部指定
3.CURLE_COULDNT_CONNECT
不能直接连接到主机或代理
4.CURLE
访问被拒绝
5.CURLE_HTTP_RETURNED_ERROR
http返回错误
6.CURLE_READ_ERROR
读本地文件错误*/

使用CURL访问网址的例子

例如,访问CSDN网址的主要代码是:

string out;
char* szpag="https://www.csdn.net/?spm=1001.2101.3001.5359";
curl_easy_setopt(curl,CURLOPT_URL,sepag);
//发送数据和检测有效数据返回,就会自动调用回调函数
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,WriteDate);
//查看网页打开后显示的内容
curl_easy_setopt(curl,CURLOPT_WRITEDATA,&out);
  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

手写不期而遇

感谢你的打赏,也欢迎一起学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值