Aller au contenu principal

Lire un fichier (RAW)

Lecture en flux

  • Description de l’interface

    GET /read_file?filename=[nom du fichier encodé dans l’URL] HTTP/1.1
    • Paramètre de requête facultatif md5=1 : ajoute Content-MD5 (Base64) aux en-têtes de réponse.
  • Réponses possibles

    • Succès : HTTP 200, le corps de la réponse est le flux d’octets du fichier (non encodé en base64).
    • Échec :
      • HTTP 404 + {"message":"File not found"} (fichier inexistant ou filename non fourni)
      • HTTP 415 + {"message":"File is a directory"} (le chemin demandé est un répertoire)
  • Exemple de lecture en flux d’un fichier de script sur l’appareil via l’interface en Python 3.x (module requests requis) :

    # -*- coding: utf-8 -*-
    import requests

    with requests.get(
    "http://192.168.31.72:46952/read_file",
    params={"filename": "lua/scripts/123.lua", "md5": 1},
    stream=True,
    timeout=30,
    ) as r:
    r.raise_for_status()
    with open("r:/123.lua", "wb") as f:
    for chunk in r.iter_content(chunk_size=8192):
    if chunk:
    f.write(chunk)
    print("Content-MD5:", r.headers.get("Content-MD5"))

Lecture Base64

  • Description de l’interface

    POST /read_file HTTP/1.1

    {"filename":"nom du fichier"}
  • Réponses possibles

    {"code":0,"message":"操作成功","data":"chaîne du contenu du fichier encodée en base64"}
    {"code":4,"message":"无法读取文件"}
    {"code":8,"message":"参数错误"}
  • Exemple de lecture d’un fichier de script sur l’appareil via l’interface en Python 3.x (module requests requis) :

    # -*- coding: utf-8 -*-
    import base64
    import requests

    resp = requests.post(
    "http://192.168.31.72:46952/read_file",
    json={"filename": "lua/scripts/123.lua"},
    timeout=30,
    )

    print(resp.status_code, resp.reason) # 200 OK en cas de succès
    if resp.status_code == 200:
    ret = resp.json()
    print(ret.get("message"))
    if ret.get("code") == 0:
    print(base64.b64decode(ret["data"]).decode("utf-8")) # Décoder les données base64 puis décoder explicitement en UTF-8
    else:
    print(resp.text)

Remarque

  • La racine des opérations sur les fichiers de cette interface est /var/mobile/Media/1ferver/.
  • L’interface Lecture en flux est disponible dans les versions postérieures à 2025-07-11.