Vue d'ensemble

La source de données du récepteur HTTP est utilisée pour accepter les données fournies au système par les méthodes HTTP GET ou POST. Les données peuvent être livrées par tout ce qui peut agir comme un client HTTP, dont l'exemple le plus évident est un navigateur web, bien qu'il en existe beaucoup d'autres.

Il est possible de configurer plusieurs sources de données de récepteurs HTTP, chacune d'entre elles étant à l'écoute de données différentes (par exemple, les ID d'appareils ou les adresses IP sources).

Les données sont reçues au chemin httpds. Ainsi, si votre système est accessible à l'adresse "http://localhost/", par exemple, les données doivent être dirigées vers "http://localhost/httpds". essayez maintenant. Ce lien envoie un paramètre appelé "testKey" avec la valeur "testValue". Comme il est probable qu'aucun récepteur n'écoute ce nom de paramètre, vous verrez probablement le message "Clé non consommée : testKey". C'est normal ; le message est un moyen pratique d'indiquer aux utilisateurs que des données sont envoyées mais ne sont pas utilisées.

Configuration

Chaque source de données nécessite un Nom, qui peut être n'importe quelle description.

La Liste blanche des adresses IP distantes est un dispositif de sécurité qui indique à la source de données d'ignorer les demandes dont l'adresse IP source ne correspond à aucun des masques d'adresse IP donnés. Voir ci-dessous pour plus d'informations sur le formatage des masques.

La liste blanche de l'identifiant de l'appareil offre une sécurité supplémentaire ainsi que l'acheminement des données en permettant la spécification des appareils que cette source de données écoute. La correspondance de l'ID de l'appareil n'est pas sensible à la casse. De plus, l'astérisque (*) peut être utilisé pour mettre fin à un masque d'identification de l'appareil. Par exemple, le masque "site10*" correspondra aux ID d'appareils "site10", "SITE10temp", "site10HUM", etc. L'ID de l'appareil est spécifié dans la requête HTTP avec le nom de paramètre __appareil (avec deux traits de soulignement). Pour plus d'informations sur les autres paramètres de la requête, voir les paramètres de la requête ci-dessous

Les "listes blanches", qui sont des listes d'éléments à autoriser, sont utilisées car elles sont intrinsèquement plus sûres que les "listes noires", qui sont des listes d'éléments à ne pas autoriser. Pour ajouter une valeur à une liste blanche, saisissez-la dans la zone de texte appropriée et cliquez sur l'icône qui l'accompagne. Pour supprimer une valeur, cliquez sur l'icône à côté de la valeur.

Masque d'adresse IP

Un "masque" est une adresse IP qui peut inclure des caractères génériques ("*") ou des séries de chiffres. Les adresses IP sont spécifiées selon le format IPv4, qui consiste en quatre valeurs séparées par un point, chacune étant un nombre compris entre 0 et 255 (par exemple "192.168.0.10"). Chacune des quatre parties du masque peut être soit un nombre spécifique qui doit être mis en correspondance, soit un "*" indiquant qu'un nombre quelconque est une correspondance, soit une plage de nombres donnée sous la forme de deux nombres valides séparés par un "-". Par exemple, un masque valide est "192.168.10-15.*", ce qui signifie que le premier chiffre doit être 192, le deuxième 168, le troisième n'importe quel chiffre entre 10 et 15 inclus, et le quatrième n'importe quel chiffre (entre 0 et 255). Le masque par défaut de "*.*.*.*" signifie que n'importe quelle adresse IP est acceptée.

Demande de paramètres

Les demandes sont livrées en utilisant des formats de demande HTTP paramétrés normaux. Lorsque vous utilisez la méthode GET, le format est "http://<nom de domaine et port>/<chemin optionnel>/httpds?param1=valeur1&param2=valeur2". Les demandes envoyées avec la méthode POST nécessitent généralement un client spécialisé ; veuillez vous référer à la documentation du client si vous souhaitez utiliser POST.

Les valeurs ponctuelles peuvent être spécifiées de deux façons. La première est le format "pointName=pointValue". La seconde consiste à fournir la clé et la valeur sous la forme de deux paramètres distincts en utilisant les préfixes de clé "__point" et "__value". Par exemple, '__pointFoo=pointName&__valueFoo=pointValue' (rassemblé en faisant correspondre le "Foo" qui suit le préfixe) a le même effet que "nomdupoint=valeurdupoint".

L'ordre dans lequel les paramètres sont fournis dans la demande n'est pas significatif.

Les clés de paramètres spéciales suivantes sont reconnues. Notez que toutes commencent par deux traits de soulignement. Elles sont toutes facultatives.

Les horodatages peuvent être représentés de multiples façons. Si un horodatage est détecté (c'est-à-dire qu'il n'est pas vide), Mango tentera de l'analyser d'abord au format "aaaaMMddHHmmss", puis "aaay-MM-dd'T'HH:mm:ss 'Z'", et enfin en tant que décompte en millisecondes UTC depuis minuit le 1er janvier 1970. (Voir la documentation "Formats de date/heure" pour plus d'informations.)

Test avec l'auditeur du récepteur HTTP

Vous pouvez examiner les données que votre système reçoit en cliquant sur le bouton "Écouter les données HTTP". Notez que les paramètres de configuration actuels de la liste blanche seront utilisés pour filtrer les demandes ; pour voir toutes les données entrantes, ajoutez le masque d'adresse IP '*.*.*.*' et le masque d'identification du périphérique '*'.

À mesure que les données sont reçues, leurs spécificités s'affichent dans la boîte d'écoute. La première ligne de résultats fournit l'adresse IP source (qui peut ensuite être utilisée dans la liste blanche des adresses IP, le cas échéant). La deuxième ligne indique l'ID de l'appareil, ou "(aucun)" si le paramètre n'était pas présent.

La troisième ligne indique l'heure de la demande. L'heure est par défaut l'heure du système, mais elle peut être remplacée par le paramètre __temps.

Les autres lignes de données précisent les clés et valeurs des paramètres individuels qui ont été reçus, dans le format "clé=valeur".

L'auditeur continuera d'écouter les demandes jusqu'à ce que l'on appuie sur "Annuler" ou que la page soit déchargée.

Exemples

Les noms de domaine ont été omis par souci de concision

httpds?__device=boilerA&temp=215.5&hum=77.4&state=running
a le même résultat que
httpds?__device=boilerA&__point1=temp&__value1=215.5&__pointFoo=hum&__valueFoo=77.4&__pointBar=state&__valueBar=running

httpds?presents=true&__time=20071225073000

Réponses HTTP

Les demandes acceptées envoyées au destinataire recevront une réponse "200 OK". Les demandes qui entraînent des erreurs ou des avertissements recevront les messages d'erreur ou d'avertissement potentiels suivants dans le contenu de la réponse HTTP :

Par défaut, seuls les messages d'erreur ou d'avertissement ci-dessus sont renvoyés dans la réponse HTTP. Si vous souhaitez que du contenu supplémentaire soit renvoyé, vous pouvez spécifier un contenu statique comme le prologue (écrit avant les messages d'erreur et d'avertissement) et l'épilogue (écrit après les messages d'erreur et d'avertissement). Utilisez les instructions d'insertion suivantes (ou des instructions de mise à jour analogues si les clés existent déjà) pour spécifier votre contenu personnalisé:

  insert into systemSettings (settingName, settingValue) values ('httpdsPrologue', 'my prologue content')
  insert into systemSettings (settingName, settingValue) values ('httpdsEpilogue', 'my epilogue content')