|
API - Requête HTTPRequête |
Débuté par Mel, 02 juin 2017 11:09 - 6 réponses |
| |
| | | |
|
| |
Posté le 02 juin 2017 - 11:09 |
Bonjour,
Je souhaite lancer une API qui envois des informations sur le serveur, donc sur une base SQL.
Je lance l'API à partir de HTTPRequête, mais ça ne marche pas. le problème vient d'une erreur de formatage URL. Mais ce ne voit pas où vient l'erreur.
ch_url = "http://site.fr/api/update/sodis/{""IdentityValue"":'9789461612113',""Weight"":718,""Height"":260,""Width"":190,""Thickness"":15,""CodeStockDilicom"":06,""StockSodis"":0}"
SI HTTPRequête(ch_url,"","","","application/json")=Vrai ALORS sIpPublique=HTTPDonneRésultat() trace(sIpPublique) FIN
Erreur obtenu : Résultat obtenu : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd"><\r><\n><HTML><HEAD><TITLE>Bad Request</TITLE><\r><\n><META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD><\r><\n><BODY><h2>Bad Request</h2><\r><\n><hr><p>HTTP Error 400. The request is badly formed.</p><\r><\n></BODY></HTML><\r><\n>
Merci d'avance pour votre aide |
| |
| |
| | | |
|
| | |
| |
Posté le 13 juin 2017 - 14:18 |
Bonjour,
Je n'arrive pas à trouver de solutions.
Si une personne a une idée, je suis preneuse.
Je reste disponible pour toutes questions. Merci d'avance de votre aide.
MEL |
| |
| |
| | | |
|
| | |
| |
Posté le 13 juin 2017 - 14:31 |
Bonjour Mel
perso, j'évite les doublages de double quotes dans les chaines ou il y a souvent des erreurs.
Je fais squote est une chaine=caract(34) et je concatène ma chaine avec des squote la ou il faut.
Ensuite, j'utilise systématiquement URLencode pour être sur de mon jeu de caractères...
Et finalement, en cas de problème, je fais un verspressepapier de la chaine obtenue et je la teste dans un navigateur
Si problème dans le navigateur, je peux facilement jouer avec la chaine jusqu'à trouver le problème et corriger le code en fonction.
Cordialement
-- Fabrice Harari Consultant WinDev, WebDev et WinDev Mobile International
A votre disposition : WXShowroom.com, WXReplication (open source) et maintenant WXEDM (open source)
Plus d'information sur http://fabriceharari.com
Le 6/13/2017 à 6:18 AM, Mel a écrit :
Bonjour, Je n'arrive pas à trouver de solutions. Si une personne a une idée, je suis preneuse.
Je reste disponible pour toutes questions.
Merci d'avance de votre aide.
MEL |
| |
| |
| | | |
|
| | |
| |
Posté le 13 juin 2017 - 16:05 |
Tu envoies un JSON dans l'URL, cela ne peut pas fonctionner. Il faut utiliser <message à envoyer> décrit dans l'aide de HTTPRequête.
Mais je te conseillerais de: 1. construire ton JSON à partir d'un variant puis de faire un VariantVersJSON (tu ne t'embête plus avec la syntaxe JSON, les double quotes, les caractère spéciaux, les array, etc...). Je vois en plus un simpe quote autour de IdentityValue, ce qui d'après moi n'est pas correct. 2. utiliser les variables de type httpRequête/httpRéponse ou restRequête/restRéponse (avec HTTPEnvoie ou RESTEnvoie) |
| |
| |
| | | |
|
| | |
| |
Posté le 13 juin 2017 - 17:05 |
Ok, merci pour votre réponse.
je vais regarder cette histoire de doubles quotes. |
| |
| |
| | | |
|
| | |
| |
Posté le 14 juin 2017 - 16:31 |
Bonjour,
Merci pour votre aide, mais j'ai toujours une erreur.
Voici le code que j'ai mis : val_sodis est un Variant val_sodis.IdentityValue = SansEspace(REQ_Liste_Articles_SAP.Gencod) val_sodis.NotationCode = REQ_Liste_Articles_SAP.Code_Notation val_sodis.StatusCode = REQ_Liste_Articles_SAP.Statut_Article val_sodis.ReleaseCode = REQ_Liste_Articles_SAP.Office_A_Venir val_sodis.ReleaseYear = "" val_sodis.DateReleaseReal = ""
cMaRequete est un restRequête cMaRequete.URL = "http://site.fr/api/check/sodis" cMaRequete.ContentType="application/json" cMaRequete.Méthode=httpPost cMaRequete.Contenu = VariantVersJSON(val)
cMaReponse est un restRéponse = RESTEnvoie(cMaRequete) SI ErreurDétectée ALORS Trace("ERREUR ----- " + ErreurInfo(errComplet)) SINON Trace("REST REPONSE --------------- " + cMaReponse..Contenu) FIN
Voici l'erreur que j'obtiens, j'ai mis que le début de l'erreur, car j'ai une erreur longue : <!DOCTYPE html><\r><\n><html lang="fr" xmlns="http://www.w3.org/1999/xhtml"><\r><\n> <head><\r><\n> <meta charset="utf-8" /><\r><\n> <title>Internal Server Error</title><\r><\n> <style><\r><\n> body {<\r><\n> font-family: 'Segoe UI', Tahoma, Arial, Helvetica, sans-serif;<\r><\n> font-size: .813em;<\r><\n> color: #222;<\r><\n> background-color: #fff;<\r><\n>}<\r><\n><\r><\n>h1, h2, h3, h4, h5 {<\r><\n> /*font-family: 'Segoe UI' ,Tahoma,Arial,Helvetica,sans-serif;*/<\r><\n> font-weight:
Merci pour votre aide |
| |
| |
| | | |
|
| | |
| |
Posté le 02 juillet 2018 - 06:23 |
Bonjour, Pourquoi le variant val n'est pas déclaré ?
cMaRequete est un restRequête cMaRequete.URL = "http://site.fr/api/check/sodis" cMaRequete.ContentType="application/json" cMaRequete.Méthode=httpPost cMaRequete.Contenu = VariantVersJSON(val) |
| |
| |
| | | |
|
| | | | |
| | |
|