3.2.2 HTTP ========== LUAT模式 -------- 模块功能:HTTP客户端 +---------+------------------------------------------------------------+ | 传入 | 释义 | | 值类型 | | +=========+============================================================+ | string | method HTTP请求方法 | | | 支持“GET”,“HEA | | | D”,“POST”,“OPTIONS”,“PUT”,“DELETE”,“TRACE”,“CONNECT” | +---------+------------------------------------------------------------+ | string | url HTTP请求url | | | url格式(除hostname外,其余字段可选;目前的实现不支持hash) | +---------+------------------------------------------------------------+ | table | **可选参数,默认为\ ``nil``**\ ,cert,table或者nil类型,s | | | sl证书,当url为https类型时,此参数才有意义。cert格式如下: | | | { caCert = “ca.crt”, –CA证书文件(Base64编码 | | | X.509格式),如果存在此 | | | 参数,则表示客户端会对服务器的证书进行校验;不存在则不校验 | | | clientCert = “client.crt”, –客户端证书文件(Base64编码 | | | X.509格式),服务器对客户端的证书进行校验时会用到此参数 | | | clientKey = “client.key”, –客户端私钥文件(Base64编码 | | | X.509格式) clientPassword = “123456”, | | | –客户端证书文件密码[可选] } | +---------+------------------------------------------------------------+ | table | **可选参数, | | | 默认为\ ``nil``**\ ,head,nil或者table类型,自定义请求头 | | | http.lua会自动添加Host: XXX、Connection: | | | short、Content-Length: XXX三个请求头 | | | 如果这三个请求头满足不了需求,head参数传入 | | | 自定义请求头,如果自定义请求头中存在Host、Connection、Cont | | | ent-Length三个请求头,将覆盖http.lua中自动添加的同名请求头 | | | head格式如下: | | | 如果 | | | 没有自定义请求头,传入nil或者{};否则传入{head1=“value1”, | | | head2=“value2”, | | | head3=“value3”},value中不能有:raw-latex:`\r\n` | +---------+------------------------------------------------------------+ | param | **可选参数,默认 | | | 为\ ``nil``**\ ,body,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”,再发送文件/lda | | | ta/test.jpg经过base64编码后的内容,最后发送字符串“string2” | +---------+------------------------------------------------------------+ | number | **可选参数,默认为\ ``30000``**\ ,timeout,请求发送成功 | | | 后,接收服务器返回应答数据的超时时间,单位毫秒,默认为30秒 | +---------+------------------------------------------------------------+ | f | **可选参数,默认为\ ``nil | | unction | ``**\ ,cbFnc,执行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”},va | | | lue中不包含:raw-latex:`\r\n`;result为false时,此参数为nil | | | body:string类型,如果调用request接口时传入了rcvFileName, | | | 此参数表示下载文件的完整路径;否则表示接收到的应答实体数据 | +---------+------------------------------------------------------------+ | string | **可选参数,默认为\ ``ni | | | l``**\ ,rcvFileName,保存“服务器应答实体数据”的文件名,可 | | | 以传入完整的文件路径,也可以传入单独的文件名,如果是文件名 | | | ,http.lua会自动生成一个完整路径,通过cbFnc的参数body传出 | +---------+------------------------------------------------------------+