APIからデータを取得しようとしていますが、現時点ではXMLとして取得しています。
私はそれをjSONとして好み、API DocはXMLだけでなくjSONでも利用できると言っています。
ドキュメントは言う...
APIは現在、XMLとJSONの2種類の応答形式をサポートしています。
リクエストのHTTP Acceptヘッダーを使用して、目的の形式を指定できます。
承認:application/xml承認:application/json
では、PHPコードでapplixation/jsonのAcceptヘッダーを生成するにはどうすればよいですか?
私のPHP現在のコードは:
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;
結果のエコーは、XML形式のデータを返すだけです。
前もって感謝します。
リクエストでHTTPヘッダーを設定するコードを変更する必要があります。 Accept
ヘッダーを指定していない
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json'));
これにより、HTTPリクエストがAPIのURLに送信され、特定の形式で応答を取得したい情報が含まれます。
編集(これが誰かに役立つ可能性がある場合):
Accept
ヘッダーは要求ヘッダーであり、応答の本文の受け入れ可能なタイプを指定しますContent-Type
ヘッダーは要求ヘッダーと応答ヘッダーの両方であり、要求/応答の本文の形式を指定しますHTTPリクエストの例は次のようになります(多くの場合、リクエストにはヘッダー部分のみが含まれます)。
GET /index.html HTTP/1.1
Host: www.example.com
Accept: application/json
そして、応答は次のようになります。
HTTP/1.1 200 OK
Date: Mon, 23 May 2005 22:38:34 GMT
Server: Apache/1.3.3.7 (Unix) (Red-Hat/Linux)
Last-Modified: Wed, 08 Jan 2003 23:11:55 GMT
Content-Type: application/json; charset=UTF-8
Content-Length: 24
{
"hello": "world"
}