postRequest(url:byte[], body:byte[])->bool
Pour cette fonction, la carte doit être connectée à Internet.
Envoie une requête POST à l’URL définie.
La fonction renvoie true si la demande a réussi (200 OK).
Exemple:
# Toggle Shelly relay
url = "http://192.168.42.146/relay/0"
body = "turn=toggle"
def onDraw():
if getButton():
postRequest(url, body)
while(getButton()): delay(50)
delay(50)
readRequestJSON(jsonPath:byte[])->byte[128]
Renvoie le contenu d’une réponse JSON sous forme de texte (max. 128 octets) de la requête préalablement demandée avec getRequest().
La clé à lire peut être définie avec jsonPath.
Les objets JSON imbriqués peuvent également être sélectionnés avec ‘.’ ou ‘/’.
Exemple1:
url = "http://api.nanopy.io/v1/utc"
getRequest(url) # {"utc":1667912328}
drawText(10, 10, readRequestJSON("utc"))
update()
Exemple2:
# {
# "myObj": {
# "mySubObj": {
# "myArray": [
# {"myKey":111},
# {"myKey":222},
# {"myKey":333}
# ],
# }
# }
# }
readRequestJSON("myObj.mySubObj.myArray.0.myKey") # "111"
readRequestJSON("myObj/mySubObj/myArray/2/myKey") # "333"
Remarque:
readRequestJSON() renvoie toujours une chaîne de caractères (byte[]).
Avec les fonctions stringTo…(), le résultat peut ensuite être converti dans le type de données approprié.
readRequest(offset:int)->byte[128]
Renvoie le texte (max. 128 octets) de la requête précédemment demandée avec getRequest().
Avec offset, on peut définir la position de départ, qui détermine à partir de quel point la réponse doit être lue.
Cela permet de lire des réponses plus longues en plusieurs étapes.
Exemple:
url = "http://api.nanopy.io/v1/hello_world"
getRequest(url)
drawText(10, 10, readRequest(0))
drawText(10, 50, readRequest(6))
update()
Remarque:
Si un serveur personnel est utilisé et que l’on souhaite renvoyer du texte brut, il est impératif de définir également la ‘longueur du contenu’ dans l’en-tête.
readRequestLength()->int
Renvoie la longueur (en octets) de la requête précédemment demandée avec getRequest().
getRequest(url:byte[])->bool
Pour cette fonction, la carte doit être connectée à Internet.
Envoie une requête GET à l’URL définie.
La fonction renvoie true si la requête a abouti (200 OK).
Les données demandées peuvent ensuite être lues à l’aide des fonctions suivantes:
readRequestLength()
readRequest(offset)
readRequestJSON(jsonPath)
Exemple:
url = "http://api.nanopy.io/v1/utc"
if (getRequest(url)):
utc = readRequestJSON("utc")
drawText(10, 10, stringToInt(utc))
else:
drawText(10, 10, "error")
update()
Limitations: - Un maximum de 8k octets peut être demandé. Les réponses plus longues sont coupées. - Les requêtes https ne sont pas supportées