合宙Air724UG LuatOS-Air script lib API--http

这篇具有很好参考价值的文章主要介绍了合宙Air724UG LuatOS-Air script lib API--http。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Table of Contents
http
http.request(method, url, cert, head, body, timeout, cbFnc, rcvFileName, tCoreExtPara)
http
模块功能:HTTP客户端

http.request(method, url, cert, head, body, timeout, cbFnc, rcvFileName, tCoreExtPara)
发送HTTP请求

参数
名称 传入值类型 释义
method string HTTP请求方法
支持"GET",“HEAD”,“POST”,“OPTIONS”,“PUT”,“DELETE”,“TRACE”,“CONNECT”
url string HTTP请求url
url格式(除hostname外,其余字段可选;目前的实现不支持hash),url中如果包含UTF8编码中文,则需要调用string.rawurlEncode转换成RFC3986编码。
cert table 可选参数,默认为nil table或者nil类型,ssl证书,当url为https类型时,此参数才有意义。cert格式如下:
{
caCert = “ca.crt”, --CA证书文件(Base64编码 X.509格式),如果存在此参数,则表示客户端会对服务器的证书进行校验;不存在则不校验
clientCert = “client.crt”, --客户端证书文件(Base64编码 X.509格式),服务器对客户端的证书进行校验时会用到此参数
clientKey = “client.key”, --客户端私钥文件(Base64编码 X.509格式)
clientPassword = “123456”, --客户端证书文件密码[可选]
}
head table 可选参数,默认为nil nil或者table类型,自定义请求头
http.lua会自动添加Host: XXX、Connection: short、Content-Length: XXX三个请求头
如果这三个请求头满足不了需求,head参数传入自定义请求头,如果自定义请求头中存在Host、Connection、Content-Length三个请求头,将覆盖http.lua中自动添加的同名请求头
head格式如下:
如果没有自定义请求头,传入nil或者{};否则传入{head1=“value1”, head2=“value2”, head3=“value3”},value中不能有\r\n
body param 可选参数,默认为nil nil、string或者table类型,请求实体
如果body仅仅是一串数据,可以直接传入一个string类型的body即可

如果body的数据比较复杂,包括字符串数据和文件,则传入table类型的数据,格式如下:
{
[1] = “string1”,
[2] = {file=“/ldata/test.jpg”},
[3] = “string2”
}
例如上面的这个body,索引必须为连续的数字(从1开始),实际传输时,先发送字符串"string1",再发送文件/ldata/test.jpg的内容,最后发送字符串"string2"

如果传输的文件内容需要进行base64编码再上传,请把file改成file_base64,格式如下:
{
[1] = “string1”,
[2] = {file_base64=“/ldata/test.jpg”},
[3] = “string2”
}
例如上面的这个body,索引必须为连续的数字(从1开始),实际传输时,先发送字符串"string1",再发送文件/ldata/test.jpg经过base64编码后的内容,最后发送字符串"string2"
timeout number 可选参数,默认为30000 http请求应答整个过程中,每个子过程的超时时间,单位毫秒,默认为30秒,子过程包括如下两种:
1、pdp数据网络激活的超时时间
2、http请求发送成功后,分段接收服务器的应答数据,每段数据接收的超时时间
cbFnc function 可选参数,默认为nil 执行HTTP请求的回调函数(请求发送结果以及应答数据接收结果都通过此函数通知用户),回调函数的调用形式为:
cbFnc(result,prompt,head,body)
result:true或者false,true表示成功收到了服务器的应答,false表示请求发送失败或者接收服务器应答失败
prompt:string类型,result为true时,表示服务器的应答码;result为false时,表示错误信息
head:table或者nil类型,表示服务器的应答头;result为true时,此参数为{head1=“value1”, head2=“value2”, head3=“value3”},value中不包含\r\n;result为false时,此参数为nil
body:string类型,如果调用request接口时传入了rcvFileName,此参数表示下载文件的完整路径;否则表示接收到的应答实体数据
rcvFileName string 可选参数,默认为nil string类型时,保存“服务器应答实体数据”的文件名,可以传入完整的文件路径,也可以传入单独的文件名,如果是文件名,http.lua会自动生成一个完整路径,通过cbFnc的参数body传出
function类型时,rcvFileName(stepData,totalLen,statusCode)
stepData: 本次服务器应答实体数据
totalLen: 实体数据的总长度
statusCode:服务器的应答码
tCoreExtPara table 可选参数,默认为nil table类型{rcvBufferSize=0}修改缓冲空间大小,解决窗口满连接超时问题,单位:字节
返回值
string rcvFilePath,如果传入了rcvFileName,则返回对应的完整路径;其余情况都返回nil

例子
http.request(“GET”,“www.lua.org”,nil,nil,nil,30000,cbFnc)
http.request(“GET”,“http://www.lua.org”,nil,nil,nil,30000,cbFnc)
http.request(“GET”,“http://www.lua.org:80”,nil,nil,nil,30000,cbFnc,“download.bin”)
http.request(“GET”,“www.lua.org/about.html”,nil,nil,nil,30000,cbFnc)
http.request(“GET”,“www.lua.org:80/about.html”,nil,nil,nil,30000,cbFnc)
http.request(“GET”,“http://wiki.openluat.com/search.html?q=123”,nil,nil,nil,30000,cbFnc)
http.request(“POST”,“www.test.com/report.html”,nil,{Head1=“ValueData1”},“BodyData”,30000,cbFnc)
http.request(“POST”,“www.test.com/report.html”,nil,{Head1=“ValueData1”,Head2=“ValueData2”},{[1]=“string1”,[2] ={file=“/ldata/test.jpg”},[3]=“string2”},30000,cbFnc)
http.request(“GET”,“https://www.baidu.com”,{caCert=“ca.crt”})
http.request(“GET”,“https://www.baidu.com”,{caCert=“ca.crt”,clientCert = “client.crt”,clientKey = “client.key”})
http.request(“GET”,“https://www.baidu.com”,{caCert=“ca.crt”,clientCert = “client.crt”,clientKey = “client.key”,clientPassword = “123456”})
详细指南和示例参考:指南 示例文章来源地址https://www.toymoban.com/news/detail-612451.html

到了这里,关于合宙Air724UG LuatOS-Air script lib API--http的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 合宙Air724UG LuatOS-Air script lib API--nvm

    nvm Table of Contents nvm nvm.init(defaultCfgFile, burnSave) nvm.set(k, v, r, s) nvm.sett(k, kk, v, r, s) nvm.flush() nvm.get(k) nvm.gett(k, kk) nvm.restore() nvm.remove() nvm 模块功能:参数管理 nvm.init(defaultCfgFile, burnSave) 初始化参数存储管理模块 参数 名称 传入值类型 释义 defaultCfgFile string 默认参数文件名 burnSa

    2024年02月14日
    浏览(42)
  • 合宙Air724UG LuatOS-Air script lib API--socket

    Table of Contents socket socket.isReady() socket.tcp(ssl, cert, tCoreExtPara) socket.udp() socket.setTcpResendPara(retryCnt, retryMaxTimeout) socket.setDnsParsePara(retryCnt, retryTimeoutMulti) socket.printStatus() socket.setLowPower™ socket 模块功能:数据链路激活、SOCKET管理(创建、连接、数据收发、状态维护) socket.isReady() SOC

    2024年02月13日
    浏览(40)
  • 合宙Air724UG LuatOS-Air script lib API--ftp

    Table of Contents ftp ftp.command(command, timeout) ftp.pasv_connect(timeout) (local函数 无法被外部调用) ftp.login(ftp_mode, host, port, username, password, timeout, ssl, cert) ftp.upload(remote_file, local_file, timeout) ftp.download(remote_file, local_file, timeout) ftp.checktype(mode, timeout) ftp.pwd(timeout) ftp.cwd(path, timeout) ftp.cdup(time

    2024年02月15日
    浏览(36)
  • 合宙Air724UG LuatOS-Air script lib API--socketCh395

    socketCh395 Table of Contents socketCh395 socketCh395.open(para) socketCh395.tcp(ssl, cert, tCoreExtPara) socketCh395.udp(localPort) mt:connect(address, port, timeout) mt:serverSelect(keepAlive, pingreq) mt:asyncSelect(keepAlive, pingreq) mt:serverSend(data, timeout) mt:serverRecv() mt:asyncSend(data, timeout) mt:asyncRecv() mt:send(data, timeout) mt:recv(ti

    2024年02月12日
    浏览(83)
  • 合宙Air724UG LuatOS-Air LVGL API--对象

    对象 概念 在 LVGL 中,用户界面的基本构建块是对象。例如,按钮,标签,图像,列表,图表或文本区域。 属性 基本属性 所有对象类型都共享一些基本属性: Position (位置) Size (尺寸) Parent (父母) Click enable (单击启用) 我们可以使用 lvgl.obj_set_… 和 lvgl.obj_get_… 等前缀的函数设

    2024年02月12日
    浏览(47)
  • 合宙Air724UG LuatOS-Air LVGL API--简介

    为何是 LVGL LVGL 是一个开源的图形库,它提供了创建嵌入式 GUI 所需的一切,具有易于使用的图形元素、漂亮的视觉效果和低内存占用的特点。 LVGL特点: 强大的 控件 :按钮、图表、列表、滑动条、图像等 高级图形引擎:动画、抗锯齿、不透明、平滑滚动、混合模式等 支持

    2024年02月12日
    浏览(33)
  • 合宙Air724UG LuatOS-Air LVGL API-概念

    概念 在 LVGL 中,用户界面的基本构建块是对象。例如,按钮,标签,图像,列表,图表或文本区域。 属性 基本属性 所有对象类型都共享一些基本属性: Position (位置) Size (尺寸) Parent (父母) Click enable (单击启用) 我们可以使用 lvgl.obj_set_… 和 lvgl.obj_get_… 等前缀的函数设置或

    2024年02月11日
    浏览(32)
  • 合宙Air724UG LuatOS-Air core API--qrencode

    qrencode Table of Contents qrencode qrencode.encode(data [,version,level]) qrencode 二维码生成 qrencode.encode(data [,version,level]) 二维码编码 参数 参数 类型 释义 取值 data string 需要编码的数据 string类型 version number 二维码版本 可选参数0-40 level number 二维码纠错等级 0-3 返回值 返回值 类型 释义 取值

    2024年02月12日
    浏览(45)
  • 合宙Air724UG LuatOS-Air LVGL API控件-窗口 (Window)

    窗口 (Window) 分 享导出pdf | lvgl.win_create 调用 lvgl.win_create(par, copy) 功能 创建一个窗口对象 返回 指向创建的窗口的指针 参数 par 指向对象的指针, 它将是新键对象的父对象 copy 指向窗口对象的指针, 如果不为 nil, 则将从其复制新对象 lvgl.win_clean 调用 lvgl.win_clean(win) 功能 清除窗口

    2024年02月09日
    浏览(51)
  • 合宙Air724UG LuatOS-Air LVGL API控件-页面 (Page)

    页面 (Page) 当控件内容过多,无法在屏幕内完整显示时,可让其在  页面  内显示。 通过函数  lvgl.page_create  可以创建一个页面 页面对象可以像容器一样设置各个方向上的匹配模式,可以把需要显示的对象添加进页面进行显示,页面可以作为控件的父容器。就像下面这样,

    2024年02月09日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包