合宙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”})
详细指南和示例参考:指南 示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/10950.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MongoDB——命令详解

db.fruit.remove({name:apple})//删除a为apple的记录db.fruit.remove({})//删除所有的记录db.fruit.remove()//报错 MongoDB使用及命令大全(一)_mongodb 删除命令_言不及行yyds的博客-CSDN博客

如何安装mmcv?官网解答

pip install -U openmim mim install mmcv

【高分论文密码】大尺度空间模拟预测与数字制图教程

详情点击链接:【高分论文密码】大尺度空间模拟预测与数字制图 一,R语言空间数据及数据挖掘关键技术 1、R语言空间数据及应用特点 1)R语言基础与数据科学 2)R空间矢量数据 3)R栅格数据 2、R语言空间数据挖掘关键技术 二,R语言空间数据高…

素描基础知识

素描基础入门 1.基础线条 1.1 握笔姿势及长线条 2.排线 2.1 不同姿势画排线 2.1.1 姿势画排线 2.1.2 用手腕画排线 2.1.3 小拇指画排线 2.1.4 叠加排线 2.1.5交叉排线 2.2 纸张擦法 2.3 排线学习榜样 2.4 四种常见的排线 3、定向连线 4、一点透视 4.1 透视的规律 4.2 焦点透视…

SpringCloudAlibaba:服务网关之Gateway的cors跨域问题

目录 一:解决问题 二:什么是跨域 三:cors跨域是什么? 一:解决问题 遇到错误: 前端请求时报错 解决: 网关中添加配置文件,注意springboot版本,添加配置。 springboo…

Hive 调优集锦(1)

一、前言 1.1 概念 Hive 依赖于 HDFS 存储数据,Hive 将 HQL 转换成 MapReduce 执行,所以说 Hive 是基于Hadoop 的一个数据仓库工具,实质就是一款基于 HDFS 的 MapReduce 计算框架,对存储在HDFS 中的数据进行分析和管理。 1.2 架…

删除每行中的最大值

给你一个 m x n 大小的矩阵 grid ,由若干正整数组成。 执行下述操作,直到 grid 变为空矩阵: 从每一行删除值最大的元素。如果存在多个这样的值,删除其中任何一个。 将删除元素中的最大值与答案相加。 注意 每执行一次操作&…

【iOS】懒加载

文章目录 前言一、懒加载的意义二、懒加载的原理三、懒加载优缺点 前言 iOS懒加载(Lazy Loading)是一种延迟加载的技术,它允许在需要的时候才初始化对象或执行某些操作,而不是在对象创建的时候立即执行。懒加载主要用于优化应用程…

从JVM指令看String对象的比较

在翻看各类 java 知识中,总会提到如下知识:比较 String 对象,例如: String a1new String("10"); String a2"10"; String a3"1""0";//结果 System.out.println(a1a2); //false System.ou…

Django接口返回JSON格式数据报文

目录 遇到问题 Django返回json结构报文 不可行方式python json 可行方式JsonResponseQuerySet.values()。 python的两个web框架,flask和django,两者都具有view 模板的章节,但是当前开发一个应用,大部分采用前后端分离的合作方式。…

Vscode python Debug环境异常Timed out waiting for launcher to connet

文章目录 launch.json配置console launch.json配置console {"configurations": [{"name": "Python: Current File","type": "python","request": "launch","program": "${file}",…

Web3D之简介

参考资料 什么是Web3D?Web3D技术发展历程以及Web3D应用场景在Web中用上3D技术-Spline 「What」什么是 Web3D? Web3D是指在Web浏览器中展示和交互的三维图形技术。它是将三维图形技术与Web技术相结合的产物,可以通过浏览器在网页上呈现出逼…

HBase有写入数据,页面端显示无数据量

写了一个测试类,插入几条数据,测试HBase的数据量。很简单的功能,这就出现问题了。。网页端可以看到,能够看到读写请求,但是不管是内存、还是磁盘,都没有数据。 于是就想到去HDFS查看,也是有数据…

ThinkPHP框架特性详解

ThinkPHP是一款用于快速开发的PHP MVC框架,它提供了各种有用的特性,用于设计和实现具有高质量、可维护性和可扩展性的Web应用程序。这篇文章将深入探讨ThinkPHP的一些关键特性。 1. MVC架构 MVC架构是ThinkPHP的核心组成部分,它代表模型(Mod…

【C++】总结5

文章目录 初始化列表explicit和mutable友元内部类 初始化列表 在构造函数中,我们可以给对象一个初始值,但是不能将其称作为类对象成员的初始化,构造函数体中的语句只能将其称为赋初值,而不能称作初始化。因为初始化只能初始化一次…

windows命令行

参考:https://blog.csdn.net/u014419722/article/details/130427423 1、 创建文件夹(mkdir或md) 创建单个文件:mkdir cmd_test 创建二级文件:mkdir cmd_test\456\123 创建多个文件:mkdir cmd_test\000 cmd_test\111 2…

解决openstack重启swift服务后报错

swift重启报错 问题描述解决办法 问题描述 swift服务正常状态如下 [rootcontroller ~]# swift statAccount: AUTH_8bde12ff804e42498661b7454994c446Containers: 0Objects: 0Bytes: 0X-Put-Timestamp: 1690507907.67931X-Timestamp: 1690507907.67931X-Trans-Id: tx56d22fa13…

idea快速运行vue项目

目录 一、前提 二、步骤 安装vue.js插件 添加脚本 进行如下配置 一、前提 安装好node.js环境并初始化完成和安装好依赖 二、步骤 安装vue.js插件 打开idea,然后在File–Settings–Plugins–Makerplace下找到vue.js插件,安装并重启idea 添加脚本 进行如下配置 在Sctipts中根…

Linux复习——基础知识

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​ 1. 有关早期linux系统中 sysvin的init的7个级别描述正确的是( )[选择1项] A. init 1 关机状态 B. init 2 字符界面多用户模式 …

【MySQL进阶(三)】 InnoDB体系架构之内存池(buffer pool)

InnoDB体系架构之内存池 一、InnoDB 体系结构二、缓冲池 buffer pool内部结构free 链(管理空闲缓冲页)怎么知道数据页是否被缓存? flush 链表(管理脏页)1. 脏页2. 链表结构3. 刷盘时机 LRU 链表(控制数据热…