示例-Luat示例-HTTP

如何用开发板实现http功能

简介

HTTP 指南
http是物联网中常用的功能,本文介绍如何用Air724开发板,通过http get 一个文件的功能演示和简要说明。

材料准备

  1. EVB_Air724UG_A13开发板一套,包括天线SIM卡,USB线。
  2. luat开发环境:环境搭建方法
    图片.png

步骤

本文主要演示怎样通过http get获取一个文件的过程。

  1. lua上只需要调用一下http请求函数就可以了,发送HTTP请求代码如下:
http.request("GET","http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/attachment/20210402160231070_httptest.txt",nil,nil,nil,nil,cbFnc)

从上面的接口可以看出,我们这里用的是HTTP的GET请求方法。

HTTP请求的url是:http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/attachment/20210402160231070_httptest.txt

HTTP请求的回调函数cbFnc :用来通知,请求发送结果以及应答数据接收结果。

  1. 回调函数代码
local function cbFnc(result,prompt,head,body)
    log.info("testHttp.cbFnc result",result)
    log.info("testHttp.cbFnc prompt",prompt)
    if result and head then
        for k,v in pairs(head) do
            log.info("testHttp.cbFnc head",k..": "..v)
        end
    end
    if result and body then
        log.info("testHttp.cbFnc","boby:"..body,"bodyLen="..body:len())
    end
end

回调函数我们打印了result,prompt,head,body这些主要信息,便于我们分析。
3. 打印log分析
http发送请求log,如下所示,http实际上也是通过TCP连接的,没写端口的情况下,默认端口为80 ,超时时间为120秒。
mqtt

回调函数log,result为true时,true表示成功收到了服务器的应答,prompt为200为网站可正常访问时的状态, head为table类型,详细信息如log显示,body为实体数据:http get test,长度大小为:13。
mqtt

  1. 可以通过浏览器,直接访问连接确认下载数据是否正确。
    在这里插入图片描述

这里可以看出我们实际打印出的数据和通过浏览器获取的数据是一致的,说明我们这个获取的数据是 正确。

  1. 测试脚本
    testhttp.7z

HTTPS双向验证流程

与HTTP连接步骤相同,在发起请求之前配置好如下三个参数:
{
caCert = “ca.crt”, --CA证书文件(Base64编码 X.509格式),如果存在此参数,则表示客户端会对服务器的证书进行校验;不存在则不校验
clientCert = “client.crt”, --客户端证书文件(Base64编码 X.509格式),服务器对客户端的证书进行校验时会用到此参数
clientKey = “client.key”, --客户端私钥文件(Base64编码 X.509格式)
clientPassword = “123456”, --客户端证书文件密码[可选]
}
相关API见

  • https “cert” 参数
    1.准备好上述三个文件“ca.crt”,“client.crt”,“client.key”
    2.配置代码
http.request("GET","https://36.7.87.100:4434",{caCert="ca.crt",clientCert = "client.crt",clientKey = "client.key"},nil,nil,nil,cbFnc)

回调函数代码

local function cbFnc(result,prompt,head,body)
    log.info("testHttp.cbFnc",result,prompt)
    if result and head then
        for k,v in pairs(head) do
            log.info("testHttp.cbFnc",k..": "..v)
        end
    end
    if result and body then
        log.info("testHttp.cbFnc","body="..body)
    end
end

在这里插入图片描述

常见问题

  1. [testHttp.cbFnc prompt] 404 返回404原因,说明访问的网页不存在
  2. [http.response] false network not ready,说明模块没有注册上网络,可能是卡欠费了,可以换一张卡测试。

相关资料以及购买链接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值