Guzzle et caractères spéciaux
Bonjour,
J'essaye d'utiliser Guzzle pour faire appel à un webservice.
Je suis pour l'insant en phase de test/Développement.
ET j'ai un gros problème quand j'envoie une requete comme ça :
Code:
$request = $client->get("http://localhost:4040/TEST/query?query= 'SELECT * WHERE {?s ?p ?o .}'");
et que je fait afficher la requete, (avant envoi donc)
Code:
dump($request->getUrl());
j'obtiens ça :
Code:
"http://localhost:4040/TEST/query?query=%20%27SELECT%20%2A%20WHERE%20%27"
Curieusement guzzle supprime tout ce qui se trouve après le char '{' .
Une explication, une idée ? question de paramétrage, de traitement de chaine avant envoi ou alors?
Merci pour vos réponses,
Pi
Il faut utiliser urlencode
J'ai mis du temps à répondre ...
Je pense que la soution de passer par un tableau est bonne,
je l'ai utilisée pour envoyer des variables post...
Mais la solution que j'ai trouvé pour résoudre ce problème est finalement assez simple.
Il faut utiliser urlencode
Code:
1 2 3 4
| $url = urlencode("SELECT * WHERE {?s ?p ?o .}");
$request = $client->get("http://localhost:3030/test/query?query=$url");
$response = $request->send();
echo $response->getBody(); |
En espérant que ça serve...
Pi