跳至主要內容

遠端啟動腳本介面

  • 介面描述

    POST /spawn HTTP/1.1
    spawn_args: {"腳本啟動參數":...}

    [腳本正文]
  • 可能的返回

    {"code":1,"message":"操作失败"}
    {"code":2,"message":"脚本有语法错误","detail":"具體的錯誤資訊"}
    {"code":3,"message":"已经有脚本正在运行中"}
    {"code":233,"message":"未知错误"}
  • 說明

    • [腳本啟動參數] 是一個不包含換行符的可列印字串
    • [腳本正文] 是腳本內容,可以是文字也可以是加密的二進位資料
    • 腳本端可以通過 proc_get 或是 proc_take 取得腳本啟動參數
    • 腳本將不會作為檔案存到裝置上,只是會運行
    • 上一條的例外,裝置啟用 腳本守護模式 的情況下,裝置會快取與裝置相關的腳本資料
  • 範例

    例如可以構造如下請求發送到裝置

    POST /spawn HTTP/1.1
    spawn_args: {"server_ip":"192.168.31.13","port":55555}
    Content-Length: 123

    local args = proc_get("spawn_args")
    args = json.decode(args)

    sys.alert("帐号服务器的 IP 为:"..args.server_ip.."\n 端口为:"..args.port)

    裝置將會彈出一個提示框 ->

    帳號伺服器的 IP 為:192.168.31.13
    連接埠為:55555
    • 例子的 Python 語言實現(適用於 Python 3.x):
    # -*- coding: utf-8 -*-

    import http.client
    import json

    spawn_args = {
    "server_ip": "192.168.31.13", # 電腦端 IP 地址
    "port": 55555, # 電腦端端口
    }

    data = r'''
    local args = proc_get("spawn_args")
    args = json.decode(args)
    sys.alert("帐号服务器的 IP 为:"..args.server_ip.."\n 端口为:"..args.port)
    '''

    headers = {
    "Content-type": "text/lua",
    "spawn_args": json.dumps(spawn_args),
    }

    conn = http.client.HTTPConnection("192.168.31.72:46952") # 設備端地址及端口
    conn.request("POST", "/spawn", data.encode('utf-8'), headers) # 將 data 編碼為 UTF-8

    response = conn.getresponse()
    print(response.status, response.reason) # 使用 print() 函數

    data = response.read()
    print(data.decode('utf-8')) # 解碼響應數據並使用 print() 函數

    conn.close()