PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Problème Requete HTTP
Problème Requete HTTP
Iniciado por cyril.reynaud, 13,may. 2020 09:41 - 8 respuestas
Publicado el 13,mayo 2020 - 09:41
Bonjour
Je débute sous WinDev et je cherche à passer un petit dev en PHP sous WinDev. Je dois consulter l'API ISBNdb et je bloque sur la "traduction" de ma requête en PHP vers du language WinDev. Je n'arrive pas à transformer cette requête toute simple en language WinDev (j'ai cherché dans le forum et l'aide en ligne pour trouver des exemples ….)
Si un d'entre vous peut me mettre sur la voie ?
Par avance je vous en remercie.
Cdlt
Olivier

Voici la requête type en PHP (qui fonctionne avec la KEY API)
$url = 'https://api2.isbndb.com/book/9780134093413';
$restKey = 'YOUR_REST_KEY';

$headers = array(
"Content-Type: application/json",
"Authorization: " . $restKey
);

$rest = curl_init();
curl_setopt($rest,CURLOPT_URL,$url);
curl_setopt($rest,CURLOPT_HTTPHEADER,$headers);
curl_setopt($rest,CURLOPT_RETURNTRANSFER, True);

$response = curl_exec($rest);

echo $response;
print_r($response);
curl_close($rest);


et voici ma compréhension en WinDev (et la je bloque)
rest_request est une restRequête
rest_response est une restRéponse
API_Key est une chaîne
API_Key="XXXXXXXXX"


rest_request..URL = "https://api2.isbndb.com/book/9781934759486"
rest_request..Méthode = httpGet

rest_request..Entête["Authorization: "]=API_Key
rest_request..ContentType = "application/json"

rest_response = RESTEnvoie(rest_request)
Miembro registrado
160 mensajes
Publicado el 13,mayo 2020 - 10:22
t as un message d'erreur ?
Miembro registrado
348 mensajes
Publicado el 13,mayo 2020 - 10:23
Bonjour

Maintenant il te reste à lire le résultat

SI rest_response.CodeEtat = 200 ALORS
jsonRéponse = rest_response.Contenu
Trace(jsonRéponse.title)
Trace(jsonRéponse.titlong)
// etc
SINON
Erreur(rest_response.CodeEtat, rest_response.DescriptionCodeEtat, rest_response.Contenu)
FIN


--
Pascal H. http://phapps.e-monsite.com
Publicado el 13,mayo 2020 - 10:37
Bonjour
Merci de vos réponses. Oui j'ai un message d'erreur, je l'ai copié à la fin de ce message.
Les 5 X correspondent à une partie "masqué" de la clé APÏ. Avec cette clé je n'ai pas de message d'erreur avec mon code PHP.

Entre vos réponses, j'ai modifié mon code WinDev après relecture de la doc de l'API (https://isbndb.com/apidocs/v2…) voici mon code modifié, pour la recherche ISBN c'est POST et non GET.
Encore merci de vos conseils.
Cdlt
Olivier

rest_request..URL = "https://api2.isbndb.com/book/9781934759486"
rest_request..Méthode = httpPost

rest_request..Entête["Authorization: "]=API_Key
rest_request..ContentType = "application/json"

rest_response = RESTEnvoie(rest_request)





Messages d'erreurs
"message":"'XXXXX_7c4f0aa4db6adef4f091aad7e9854e7d' not a valid key=value pair (missing equal-sign) in Authorization header: ': XXXXX_7c4f0aa4db6adef4f091aad7e9854e7d'."}

HTTP/1.1 403 Forbidden
Content-Type: application/json
Content-Length: 171
Connection: close
Date: Wed, 13 May 2020 08:30:14 GMT
x-amzn-RequestId: 1d224e82-ac29-4dfd-8732-af3b4d5ee295
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token
x-amzn-ErrorType: IncompleteSignatureException
x-amz-apigw-id: MdhzkFbjoAMF7Xw=
Access-Control-Allow-Methods: GET,OPTIONS
X-Cache: Error from cloudfront
Via: 1.1 3d31b9207a0bab7982999e9846baee80.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: CDG53-C1
X-Amz-Cf-Id: PKT47uNRRoiT6LF2f1gz-wX--leIhRIeGERB7S2yW9gxII4Rd7FmFg==
Publicado el 13,mayo 2020 - 10:37
Bonjour
Merci de vos réponses. Oui j'ai un message d'erreur, je l'ai copié à la fin de ce message.
Les 5 X correspondent à une partie "masqué" de la clé APÏ. Avec cette clé je n'ai pas de message d'erreur avec mon code PHP.

Entre vos réponses, j'ai modifié mon code WinDev après relecture de la doc de l'API (https://isbndb.com/apidocs/v2…) voici mon code modifié, pour la recherche ISBN c'est POST et non GET.
Encore merci de vos conseils.
Cdlt
Olivier

rest_request..URL = "https://api2.isbndb.com/book/9781934759486"
rest_request..Méthode = httpPost

rest_request..Entête["Authorization: "]=API_Key
rest_request..ContentType = "application/json"

rest_response = RESTEnvoie(rest_request)





Messages d'erreurs
"message":"'XXXXX_7c4f0aa4db6adef4f091aad7e9854e7d' not a valid key=value pair (missing equal-sign) in Authorization header: ': XXXXX_7c4f0aa4db6adef4f091aad7e9854e7d'."}

HTTP/1.1 403 Forbidden
Content-Type: application/json
Content-Length: 171
Connection: close
Date: Wed, 13 May 2020 08:30:14 GMT
x-amzn-RequestId: 1d224e82-ac29-4dfd-8732-af3b4d5ee295
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token
x-amzn-ErrorType: IncompleteSignatureException
x-amz-apigw-id: MdhzkFbjoAMF7Xw=
Access-Control-Allow-Methods: GET,OPTIONS
X-Cache: Error from cloudfront
Via: 1.1 3d31b9207a0bab7982999e9846baee80.cloudfront.net (CloudFront)
X-Amz-Cf-Pop: CDG53-C1
X-Amz-Cf-Id: PKT47uNRRoiT6LF2f1gz-wX--leIhRIeGERB7S2yW9gxII4Rd7FmFg==
Publicado el 13,mayo 2020 - 11:09
Bon…
J'ai besoin de lunettes .. C'est du GET et pas du POST.
J'ai fait une autre essai (voir ci-dessous) hors WinDev est cela fonctionne.
Je pense que je me plante sur la description de rest request….
cdlt
Olivier

curl -X GET "https://api2.isbndb.com/book/9782847895131" -H  "accept: application/json" -H  "Authorization: XXXXX_7c4f0aa4db6adef4f091aad7e9854e7d"
https://api2.isbndb.com/book/9782847895131
Miembro registrado
160 mensajes
Publicado el 13,mayo 2020 - 11:17
pourquoi les deux points apres "Authorization" ? ===> rest_request..Entête["Authorization: "]=API_Key

il faut mettre : rest_request..Entête["Authorization"]=API_Key
Miembro registrado
348 mensajes
Publicado el 13,mayo 2020 - 11:19
Je n'avais pas fait attention mais il y a une erreur de syntaxe dans le header
Les ": " est en trop

rest_request..Entête["Authorization"] = API_Key


--
Pascal H. http://phapps.e-monsite.com
Publicado el 13,mayo 2020 - 11:28
Mille merci !!
Cela fonctionne sans les :
A présent je vais pouvoir extraire les data du JSON… Et archiver mes bouquins :-)
Excellente journée à tous
Cdlt
Olivier