Comment dois-je faire HTTP GET et POST en cours/OpenEdge ABL?
Les Progrès docs déversement beaucoup d'encre sur le SAVON, mais je vais avoir du mal à trouver l'exemple d'une simple HTTP GET/POST, avec les Progrès de l'ABL.
Comment puis-je OBTENIR et publier des chaînes à partir d'un URL?
Peut l'URL https://?
Les Progrès de fournir l'adresse HTTP de Base ou l'authentification HTTP Digest?
Ce que nous avons fait était de shell à une distincte (Python) afin de fournir l'accès HTTP. C'était plus facile que d'essayer de mettre en œuvre de manière aussi complète HTTP dans ABL.
OriginalL'auteur joeforker | 2010-01-14
Vous devez vous connecter pour publier un commentaire.
Openedge a construit dans les instructions pour la manutention des services SOAP, mais pas à une simple déclaration d'un GET/POST. Ce qu'il n'ont, cependant, est un mécanisme de lecture /écriture à certains supports. De sorte que vous pouvez l'utiliser pour construire un HTTP post de routine, ou une routine pour gérer n'importe quel autre socket basée sur le protocole.
Il y a une routine - http.p - ce qui va faire un OBTENIR pour vous. Cela vous permettra de voir comment la programmation socket fonctionne si de rien d'autre. Vous devriez être en mesure de le modifier très facilement pour faire un simple POSTE, mais l'utilisation de SSL ou de monter dans l'authentification peut prendre un peu de travail. Vous pourriez être plus facile que de les abandonner pour de la tuile dans ce cas.
http.p utilisé pour être disponible à partir de freeframework.org mais j'ai juste vérifié et que le domaine a expiré, donc j'ai posté le code ci-dessous.
OriginalL'auteur Gordon Robertson
Pour les futurs spectateurs à cette question:
Openedge maintenant (depuis 11.5.1 je crois) a un support intégré pour l'appel de webservices REST. Ces sont placés dans une condition .pl archive qui n'est pas dans votre PROPATH par défaut, de sorte que doit être traitée en premier (ou l'archive peut être déplacé vers un "mieux").
La propath peut être définie dans un certain nombre de façons, les fichiers d'initialisation, registre, par programmation, etc. C'est la façon dont il peut être fait dans ABL (si c'est fait de cette façon, il doit être répété pour chaque nouvelle session).
Il y a aussi une version en "ats" directory, ainsi qu'une archive contenant le code source dans le répertoire "src".
Voici un exemple très simple:
Documentation pour 11.6 peuvent être trouvés ici.
OriginalL'auteur Jensd
Progrès Kbase ID: 20011: "Exemple de Code Pour Accéder à un Site Web via HTTP avec 4GL Sockets" est aussi un bel exemple générique.
OriginalL'auteur Tom Bascom
Je vous recommande d'utiliser l'exemple de code de Gordon Roberertson ci-dessus, car il y a de l'ATTENTE "POUR" les Progrès de l'article remplacé par une boucle. Ainsi, le prcoedure se termine après le délai d'attente si quelque chose va mal.
Veuillez noter que le fait de changer quoi que ce soit dans requestString peut provoquer des délais d'attente. Mais l'ajout d'un User-Agent est possible que si vous avez besoin pour ouvrir une session sur votre serveur:
Grâce à Gordon pour son exemple de code.
OriginalL'auteur Thomas Bluehmann