指南-示例-luat示例-http
作者:互联网
关键词:HTTP,POST,GET
如何用开发板实现http功能
目录名称
简介
HTTP 指南
http是物联网中常用的功能,本文介绍如何用Air724开发板,通过http get 一个文件的功能演示和简要说明。
材料准备
- EVB_Air724UG_A13开发板一套,包括天线SIM卡,USB线。
- luat开发环境:环境搭建方法
步骤
本文主要演示怎样通过http get获取一个文件的过程。
- 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 :用来通知,请求发送结果以及应答数据接收结果。
- 回调函数代码
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秒。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wMo85fCN-1624852467704)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210402170621683_1.png “undefined”)]
回调函数log,result为true时,true表示成功收到了服务器的应答,prompt为200为网站可正常访问时的状态, head为table类型,详细信息如log显示,body为实体数据:http get test,长度大小为:13。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hvA6magR-1624852467705)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210402171912562_3.jpg “undefined”)]
-
可以通过浏览器,直接访问连接确认下载数据是否正确。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tQi6RUMh-1624852467707)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210402174452286_3.png “undefined”)]
这里可以看出我们实际打印出的数据和通过浏览器获取的数据是一致的,说明我们这个获取的数据是 正确。 -
测试脚本
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
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lRvu87Gg-1624852467708)(http://openluat-luatcommunity.oss-cn-hangzhou.aliyuncs.com/images/20210607150125998_Snipaste_2021-06-07_15-00-49.png “undefined”)]
常见问题
- [testHttp.cbFnc prompt] 404 返回404原因,说明访问的网页不存在
- [http.response] false network not ready,说明模块没有注册上网络,可能是卡欠费了,可以换一张卡测试。
相关资料以及购买链接
标签:body,head,http,log,luat,示例,result,cbFnc 来源: https://blog.csdn.net/luat_ttttttt/article/details/118298928