现在官方自带的http的命令少了个提交文件的功能,美中不足
无可奈何我就被迫营业封装了一个http的插件,可以支持upload功能
目前插件还是内测版本,功能不完善且概率存在一定BUG,后续会进行迭代更新 |
功能特色- 自定义header消息头- 智能判定Content-Type类型- 支持Android&IOS双端使用- 统一的payload格式传入(table类型)
命令功能SHTTP.Get(url, opts)- 功能:发送Get请求
- 参数:
- url: 必选,请求的url
- opts: 可选参数,包含以下参数的键值表
headers: 自定义http消息头,可以是键值表或者字符串
timeout: 请求超时时间,默认为10秒
files: 上传文件路径
- 返回:返回请求结果
SHTTP.Post(url, data, opts)- 功能:发送Get请求
- 参数:
- url: 必选,请求的url
- data: 必选,需要提交的请求数据,用键值表或者key-value存放提交数据
- opts: 可选参数,包含以下参数的键值表
headers: 自定义http消息头,可以是键值表或者字符串
timeout: 请求超时时间,默认为10秒
files: 上传文件路径
- 返回:返回请求结果
使用范例简单的Get请求- Import "SHTTP.lua"
- Dim tHeaders = {null}
- tHeaders["user-agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
- TracePrint SHTTP.Get("http://bbs.anjian.com/", {"headers": tHeaders})
复制代码 附带请求头Get- Import "SHTTP.lua"
- Dim tHeaders = {null}
- tHeaders["user-agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
- TracePrint SHTTP.Get("http://bbs.anjian.com/", {"headers": tHeaders})
- // 设定超时时间
- TracePrint SHTTP.Get("http://bbs.anjian.com/", {"headers": tHeaders, "timeout": 5})
复制代码 发送post请求- Import "SHTTP.lua"
- Dim sUrl= "https://api.toolnb.com/Tools/Qrcode/qrcodeLogo.html"
- Dim tHeaders = {null}
- tHeaders["user-agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
- tHeaders["content-type"] = "multipart/form-data"
- Dim tPayload = {null}
- tPayload["images"] = "undefined"
- tPayload["type"] = "L"
- tPayload["size"] = 4
- tPayload["data"] = "https://www.toolnb.com"
- TracePrint SHTTP.Post(sUrl, tPayload, {"headers": tHeaders})
复制代码 post提交文件- Import "SHTTP.lua"
- Dim sUrl= "https://api.toolnb.com/Tools/Qrcode/qrcodeLogo.html"
- Dim tHeaders = {null}
- tHeaders["user-agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36"
- tHeaders["content-type"] = "multipart/form-data"
- Dim tPayload = {null}
- tPayload["type"] = "L"
- tPayload["size"] = 4
- tPayload["data"] = "https://www.toolnb.com"
- TracePrint SHTTP.Post(sUrl, tPayload, {"headers": tHeaders, "files": {"images": "/storage/emulated/0/Download/flagCache/com.microvirt.launcher2.png"}})
复制代码 对接百度OCR识别- Import "SHTTP.lua"
- Import "ShanHai.lua"
- Import "Cjson.lua"
- Dim sUrl = "https://aip.baidubce.com/oauth/2.0/token"
- Dim tData = {null}
- tData["grant_type"] = "client_credentials"
- tData["client_id"] = "" // 填自己的client_id
- tData["client_secret"] = "" // 填自己的client_secret
- Dim sJson, tJson
- // 获取api的access_token值
- sJson = SHTTP.Post(sUrl, tData)
- tJson = Cjson.Decode(sJson)
- Dim Access_Token = tJson["access_token"]
- sUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic" & "?access_token=" & Access_Token
- // 需要先将图片转成base64编码
- Dim ImgBase64 = ShanHai.ReadFileBase(GetSdcardDir() & "/Pictures/test.png")
- // 对内容进行url编码
- ImgBase64 = ShanHai.CharToUrl(ImgBase64)
- sJson = SHTTP.Post(sUrl, {"image":ImgBase64},{"headers":{"Content-Type":"application/x-www-form-urlencoded"}})
- tJson = Cjson.Decode(sJson)
- For i = 1 To Len(tJson["words_result"])
- TracePrint tJson["words_result"][i]["words"]
- Next
复制代码 插件开源下载(回复可见): - SHTTP.zip (, 下载次数:1570)