lua 스 크 립 트 httpPostJSon: application / json;charset=UTF-8
8864 단어 lua
머리말
Lua 는 표준 C 언어 로 작 성 된 가 벼 운 스 크 립 트 언어 로 원본 을 엽 니 다.
그 디자인 목적 은 응용 프로그램 에 삽입 하여 응용 프로그램 에 유연 한 확장 과 맞 춤 형 기능 을 제공 하 는 것 이다.루 아 는 브라질 리 우 데 자네 이 루 가톨릭 대학의 한 연구 팀 (Roberto Ierusalimschy, Waldemar Celes, Luiz Henrique de Figueiredo 로 구성) 이 1993 년 개발 했다.
하나의 유 니 버 설 형식의 표 (table) 만 제공 합 니 다. 이 를 통 해 배열, 해시 표, 집합, 대상 을 실현 할 수 있 습 니 다.다 중 스 레 드 (협동 프로 세 스, 운영 체제 가 지원 하 는 스 레 드 가 아 닙 니 다) 지원 을 제공 합 니 다.
p: 협동 프로 세 스 내부 에서 http 요청 을 할 때 장치 가 끊 길 수 있 습 니 다.
init("0", 0);
require "TSLib"
while (true) do
if deviceIsLock() == 1 then --
unlockDevice()--
end
end
if type(response_body) == "table" then
for k, v in pairs(response_body) do
-- print( v)
-- print( type(v))
str2 = v
end
end
if type(response_body) == "table" then
sysLog("《"..table.concat(response_body).."》")
else
sysLog("Not a table:", type(response_body))
end
x,y = catchTouchPoint();
sysLog("catchTouchPoint"..x..","..y);
r,g,b = getColorRGB(x,y);
sysLog("getColor:"..r..","..g..","..b);
iPhone:/etc root# echo "192.168.2.254 alimama.fuge.cn" > /etc/hosts
iPhone:/etc root# echo '127.0.0.1 localhost' >> /etc/hosts
II 、 생산자 - 소비자 문제
지금 나 는 루 아의 협동 절 차 를 이용 하여 생산자 - 소비자 라 는 전형 적 인 문 제 를 완성 할 것 이다.
-
Lua - 。
local newProductor
function productor()
local i = 0
while true do
i = i + 1
send(i) --
end
end
function consumer()
while true do
local i = receive() --
print(i)
end
end
function receive()
local status, value = coroutine.resume(newProductor)
return value
end
function send(x)
coroutine.yield(x) -- x , ,
end
--
newProductor = coroutine.create(productor)
consumer()
하나의 퀘 스 트 (생산) 를 수행 하고 데 이 터 를 서버 (소비) 에 보고 하여 다음 퀘 스 트 의 장면 을 엽 니 다.
한 번 생산 하고 한 번 소비 하 다.
III Http4lua
- lua 가 시작 한 Content - Type 은 application / json 입 니 다.charset = UTF - 8 요청 패키지 :
httpPostJson
--local json = require "json"
local sz = require("sz")
local json = sz.json
local http = require("szocket.http")
require "TSLib"
local globalIOS8 = -1
local globalIOS9 = -1
function isiOS8()
if globalIOS8 == -1 then
if string.byte( osversion ,1) == string.byte( "8" ,1) then
globalIOS8 = 1
else
globalIOS8 = 0
end
end
return globalIOS8 == 1
end
function isiOS9()
if globalIOS9 == -1 then
if string.byte( osversion ,1) == string.byte( "9" ,1) then
globalIOS9 = 1
else
globalIOS9 = 0
end
end
return globalIOS9 == 1
end
function isiOS10()
return isiOS8() == false and isiOS9() == false
end
w,h = getScreenSize()
function clearDeviceData(...)
clearPasteboard()--
clearCookies() -- Cookies
end
function click2(pt)
touchDown(pt.x, pt.y)
mSleep(60)
touchUp(pt.x, pt.y)
end
function click(x, y)
touchDown(x, y)
mSleep(60)
touchUp(x, y)
end
function findMultiColorInRect( colorTable , rc )
x,y=findMultiColorInRegionFuzzyByTable(colorTable,90, rc.x1 , rc.y1 , rc.x2 , rc.y2 )
return x,y
end
function findMultiColorInRectBool( colorTable , rc )
x,y=findMultiColorInRegionFuzzyByTable(colorTable,90, rc.x1 , rc.y1 , rc.x2 , rc.y2 )
if x ~= -1 and y ~= -1 then
return true
else
return false
end
end
--return handled
function findAndClick( colorTable , rc )
x,y= findMultiColorInRect( colorTable , rc)
if x ~= -1 and y ~= -1 then
mSleep(500)
click(x,y)
return true
else
return false
end
end
local myToken = "dinghao"
function httpPost( http_url , content_type , http_body )
sysLog("《httpPost start 》http_url: "..http_url);
sysLog("content_type: "..content_type);
sysLog("http_body :")
if type(http_body) == "table" then
sysLog(table.concat(http_body))
else
if(not(http_body == nil)) then
sysLog("Not a table:"..http_body)
end
end
local response_body = {}
local res, code, response_headers = http.request{
url = http_url,
method = "POST",
headers =
{
["Content-Type"] = content_type;
["Content-Length"] = #http_body;
},
source = ltn12.source.string(http_body),
sink = ltn12.sink.table(response_body),
}
decode3 = {};
--notifyMessage("res is:"..res);
sysLog("《httpPost end 》");
if(not(res == nil)) then
sysLog("res:"..res);
else
--code: timeout
res= "";
sysLog("code: "..code);
--
--
file = io.open("/var/root/lualog.text", "a")
-- Lua
-- test.lua
io.output(file)
if type(response_body) == "table" then
file:write("--res:"..res.." code:"..code.." response_body:"..table.concat(response_body).."
")
else
file:write("--res:"..res.." code:"..code.." response_body[1]:"..type(response_body).."
")
end
--
file:close()
return res,code,decode3
end
sysLog("code: "..code);
sysLog("Response body:")
if type(response_body) == "table" then
sysLog("《"..table.concat(response_body).."》")
else
sysLog("Not a table:", type(response_body))
end
if (not(response_body[1] == nil)) then
decode3 = json.decode( response_body[1] )-- string
end
return res,code,decode3
end
function httpPostJson(http_url , json_body_table )
assert( type(json_body_table) == "table" )
return httpPost(http_url,"application/json; charset=UTF-8", json.encode( json_body_table ) )
end
local globalURL = ""
local smsStatusProcessing = 2
local smsStatusFailed = 3
local smsStatusFinished = 4
local postTable = {};
--
local res,code,response_body = httpPostJson(urlTable["getNew"], postTable);
--notifyMessage("res is:"..res);
sysLog("response_body "..table.concat(response_body));
sysLog(res)
sysLog("Response body:")
if type(response_body) == "table" then
sysLog(table.concat(response_body))
else
sysLog("Not a table:", type(response_body))
end
--send("timeout") -- ,
send(table.concat(response_body)) --
writePasteboard(code);
- function KNreport(report)
if not(type(report) == "table") then
return;
end
getnewurl = ""..urlbaseTable[getenv()]..methodurlTable["report"];
local res,code,response_body = httpPostJson(getnewurl, report);
--send("timeout") --
--send() --
local jsonBody= response_body;
sysLog("jsonBody :"..table.concat(response_body));
code = jsonBody["Code"];
sysLog("Code:"..code.."type"..type(Code)); --break;
if( code == 201 ) then
sysLog("201:"); --break;
elseif (code == 200 ) then
sysLog(" !"); --break;
end
end
see also
다 중 주석 추천 사용 -- [= [주석 내용] =]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Neovim을 위한 자동 완성NeoVim으로 생산성을 높일 수 있는 가장 멋진 기능 중 하나는 자동 완성이므로 성능에 따라 플러그인을 선택할 수 있습니다. YouCompleteMe Coc.nvim 이 플러그인은 사용하기 좋지만 Javascrip...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.