PHP-Curl-Request Rückgabe von Daten in application/json
Ich versuche, einige Daten aus einer API und ich bin immer wieder in dem moment, als XML.
Ich würde es vorziehen, es als jSON und die API-Doc ' s sagen, dass es in jSON sowie XML.
Die Docs sagen...
Die API unterstützt derzeit zwei Arten von Antwort-format: XML und JSON
Können Sie das gewünschte format über die HTTP-Accept-header in der Anfrage:
Accept: application/xml
Akzeptieren: application/json
So wie Generiere ich den Accept-Header von applixation/json in meinem PHP-code?
Mein PHP-code im moment lautet :
header('Content-Type: application/json');
$endpoint = "http://api.api.com";
// Initiate curl
$ch = curl_init();
//Set The Response Format to Json
curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json'));
//Disable SSL verification
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
//Will return the response, if false it print the response
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//Set the url
curl_setopt($ch, CURLOPT_URL,$endpoint);
//Execute
$result=curl_exec($ch);
//Closing
curl_close($ch);
echo $result;
Das echo Ergebnis ist einfach nur die Rückgabe von XML-formatierten Daten.
Vielen Dank im Voraus.
- Die docs sagen
Accept
aber Sie sind mitContent-Type
imCURLOPT_HTTPHEADER
- Verwenden curl_setopt($ch, CURLOPT_HTTPHEADER, array ("Accept: application/json'));
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie den code ändern, wo Sie die HTTP-Header in Ihrer Anfrage. Sie waren nicht die Angabe der
Accept
headerDiese sollte geschickt der HTTP-request an die API-URL mit den Informationen, die Sie möchten, um die Reaktion in dem speziellen format.
Bearbeiten (in diesem Fall könnte nützlich sein, um jemanden):
Accept
- header ist ein header der Anforderung und es gibt die akzeptable Art der Reaktion, den KörperContent-Type
header ist sowohl ein request und ein response-header und gibt das format des Körpers der Anfrage - /Antwort -Beispiel der HTTP-Anforderungen könnte in etwa so Aussehen (Häufig ist die Anfrage enthält nur die header-Teil):
Und die Reaktion könnte so Aussehen, dass:
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
vor Ihrercurl_exec()
anrufen und nach dem curl_exec nennen, die Sie ausführen könnenecho curl_getinfo($ch, CURLINFO_HEADER_OUT);
drucken die HTTP-header. Ich habe versucht, Ihre PHP-code und hab den Accept-header in der Anfrage, so sieht alles ganz normal aus. Ich habe keinen Zugriff auf die API von daher denke ich, ich kann nicht Debuggen weiter. Ist in der API-Dokumentation online verfügbar?