Interface de démarrage distant d’un script
-
Description de l’interface
POST /spawn HTTP/1.1
spawn_args: {"paramètres de démarrage du script":...}
[corps du script] -
Réponses possibles
{"code":1,"message":"操作失败"}{"code":2,"message":"脚本有语法错误","detail":"informations détaillées sur l’erreur"}{"code":3,"message":"已经有脚本正在运行中"}{"code":233,"message":"未知错误"} -
Remarque
- [paramètres de démarrage du script] est une chaîne imprimable sans saut de ligne.
- [corps du script] est le contenu du script, qui peut être du texte ou des données binaires chiffrées.
- Le script peut obtenir les paramètres de démarrage avec proc_get ou proc_take.
- Le script n’est pas enregistré comme fichier sur l’appareil ; il est seulement exécuté.
- Exception au point précédent : lorsque le mode daemon du script est activé sur l’appareil, celui-ci met en cache les données du script associées à l’appareil.
-
Exemple
Par exemple, construisez la requête suivante et envoyez-la à l’appareil
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)L’appareil affiche une alerte
->账号服务器的 IP 为:192.168.31.13
端口为:55555- Implémentation de l’exemple en Python (pour Python 3.x) :
# -*- coding: utf-8 -*-
import http.client
import json
spawn_args = {
"server_ip": "192.168.31.13", # Adresse IP de l’ordinateur
"port": 55555, # Port de l’ordinateur
}
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") # Adresse et port de l’appareil
conn.request("POST", "/spawn", data.encode('utf-8'), headers) # Encoder data en UTF-8
response = conn.getresponse()
print(response.status, response.reason) # Utiliser la fonction print()
data = response.read()
print(data.decode('utf-8')) # Décoder les données de réponse et utiliser la fonction print()
conn.close()