J'écris un client pour une API ...Comment obtenir une sortie JSON valide à partir de la réponse dans Zend Framework 3?
use Zend\Http\Client;
use Zend\Http\Request;
use Zend\Json\Json;
...
$request = new Request();
$request->getHeaders()->addHeaders([
'Accept-Charset' => 'UTF-8',
'Accept' => 'application/hal+json',
'Content-Type' => 'application/hal+json; charset=UTF-8',
]);
$apiAddress = 'http://my.project.tld/categories';
$request->setUri($apiAddress);
$request->setMethod('GET');
$client = new Client();
$response = $client->dispatch($request);
$data = $response->getContent();
... et obtenir un cassé JSON comme ceci:
1f9e <-- What is it?
{"_links...
\u043 <-- What is it?
1a6...
tfoli <-- What is it?
0
La chaîne est separaten en cinq lignes:
- 1ère ligne: seulement
1f9e
- 2ème ligne: première partie de contenu
- ligne 3d: string
1a6
- 4e ligne: la seconde partie de contenu
- 5ème ligne:
0
Pourquoi ai-je des symboles/chaînes supplémentaires? Comment éviter cela une sortie JSON valide?
Merci beaucoup pour votre réponse! Je n'ai pas utilisé 'getBody()' parce que j'avais confiance dans la fonction de saisie semi-automatique de mon IDE. Le 'Zend \ Http \ Client # dispatch (...)' renvoie un 'Zend \ Stdlib \ ResponseInterface'. Je ne l'ai pas considéré et, quand j'ai seulement 'getContent (...)' et 'getMetadata (...)', je pensais que le 'getBody (...)' n'était plus fourni. Mais bien sûr, l'objet concret renvoyé par le 'dispatch (...)' est un 'Zend \ Http \ Response' et il fournit la méthode dont j'ai besoin -' getBody() '. Maintenant ça marche. Merci beaucoup! – automatix
Vous êtes toujours les bienvenus! – unclexo