【OpenCPU】MN316-DLVD丨HTTP使用介绍

菩禔看科技 2024-04-23 02:41:23

HTTP(Hyper Text Transfer Protocol)即超文本传输协议,是一个简单的请求-响应协议,通常运行在TCP之上,它指定了客户端可能发送给服务器消息类型以及得到什么类型响应。HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer)即超文本传输安全协议,在HTTP的基础下加入SSL,是以安全为目标的HTTP通道。这两种协议目前广泛运用于物联网设备中,是物联网工程师必备的技能。本文从函数接口、OpenCPU demo解析、注意事项三个方面对MN316 OpenCPU的HTTP demo及HTTPS demo进行解析。

一、函数接口介绍

HTTP应用实例流程图如下。

图1 HTTP业务流程图

1.1创建客户端实例

连接HTTP首先需要创建一个客户端实例。

图2 创建客户端实例

①url:即服务器的地址;

②callback:即客户端相关的回调函数,可以为空;

③handle:实例句柄。

1.2客户端配置

同时对于此客户端实例进行相应的参数配置。

图3 客户端参数设置

①handle:实例句柄(客户端);

②cfg:客户端配置参数(具体参数如下)。

图4 客户端可配参数

1.3 发送请求

接下来选择HTTP请求类型。

图5 发送请求

①handle:实例句柄(客户端);

②param:发送请求的参数(具体如下)。

图6 同步接口输入参数

请求类型又分为:GET请求,请求指定的页面信息;POST请求,向指定资源提交数据;PUT请求,向服务器指定的位置上传最新的内容;DELETE请求,请求服务器删除Request-URL资源;HEAD请求,用于获取报头信息。

图7 HTTP请求类型

图8 同步接口输入参数

③response:HTTP请求所返回的结果及存放在此,其具体结构如下。

图9 同步接口响应数据

1.4 释放相应数据

得到结果后,释放数据。

图10 释放响应数据接口

1.5 HTTPS请求

如果对安全性要求较高,则使用HTTPs来建立连接发送请求。具体实现方法参照上述HTTP应用实例流程,需注意,第②步配置参数时要将ssl_enable值设为1使能,在第③步前需添加一个设置ssl证书的步骤。

图11 配置SSL参数

①ssl_id:同cm_HTTPclient_cfg_t中的ssl_id索引;

②type:ssl配置类型,具体有如下所示。

图12 SSL配置类型

③value:ssl配置参数(即证书)格式如下。

图13 根证书

1.6 其他函数介绍

①删除客户端实例;

图14 删除客户端实例

②终止HTTP连接;

图15 终止HTTP连接

③获取响应结果码。

图16 获取响应结果

二、OpenCPU demo解析

标准版SDK的demo中提供了6个与HTTP相关的测试项。

图17 HTTP调用示例

在开始之前,需要先将服务器与相应路径设置好,本文示例为:

图18 HTTP设置服务器路径

2.1 HTTP示例

GET/PUT/POST/DELTE整个流程相似,这里用GET做解析。

图19 HTTP GET Demo代码

根据上文介绍,一次请求主要分为4步,本实例完整地体现出这四步。

①创建一个客户端实例;

图20 创建客户端实例

②对这个客户端实例进行参数配置;

图21 配置客户端参数

③发送具体请求,得到返回结果;

④释放相应数据。

图22 释放相应数据

测试结果如下图。

图23 测试结果图

成功对HTTP服务器发送了get请求。

2.2 HTTPS 无证书加密测试

调用HTTPS的请求示例API接口:CM:HTTP:HTTPSGETTEST

图24 HTTPS配置参数

HTTPS GET与前面HTTP GET的主要区别是在客户端配置阶段ssl使能。

图25 HTTPS客户端配置参数

以及配置了ssl,但是此处是为了无证书加密测试,无身份验证,所以ssl实际上是空的。

图26 配置无证书方式加密

执行结果如下图:

图27 HTTPS 无证书方式测试结果

2.3 HTTPS CA证书加密测试

这里就将上一节中ssl配置改为CA证书验证,并添加CA证书。

图28 添加CA证书

执行结果如下图:

图29 添加CA证书执行结果

可以看到,收到响应内容与没有身份验证时的数据并不相同,差异主要体现在报头(header)的长度以及请求的内容(content)上。

三、注意事项

1.在调用函数接口前,需确认模组是否成功驻网,并确认已经配置好服务器与相对路径,否则可能导致调用函数接口无法收到正确的返回。

2.demo中优先使用IPV6 DNS来解析,而有些SIM卡对于IPV6 DNS服务器请求会产生异常失败,这时将HTTP参数中dns_priority 设置为1,即将dns解析设置为IPV4优先,再重新测试一下。

图30 HTTP 可配参数





转载自中移物联网,仅供模组品牌对应于中移物联网模组体系参考。

声明:《菩禔物联》所发表内容均为原创,所有原创内容仅用于交流,不代表任何立场和观点。极少数优才文章注明来源的,版权归原出处所有(无法查证版权的或未注明出处的均来源于网络搜集)。如有侵权,请联系我们删除或更改。内容的真实性、准确性和合法性由原作者负责。转载内容(视频、文章、广告等)只以信息传播为目的,仅供参考,不代表本平台认同其观点和立场。

The content published in the Bodhi Union of Things is original, and all original content is for communication purposes only and does not represent any position or viewpoint. A very small number of excellent talent articles indicate their source, and the copyright belongs to the original source (those that cannot be verified or whose source is not indicated are all collected online). If there is any infringement, please contact us to delete or make changes. The authenticity, accuracy, and legality of the content are the responsibility of the original author. The reprinted content (videos, articles, advertisements, etc.) is only for the purpose of information dissemination and is for reference only. It does not mean that this platform agrees with its views and positions.

0 阅读:0

菩禔看科技

简介:感谢大家的关注