2011-07-15 15 views
1

curlの機能をブラウザに直接ロードすると、XML形式のデータが正しく取得されます。Expedia APIとカールを使用してXMLデータを取得する際の問題

しかし、curlから呼び出すと、JSON形式のデータが得られることがあります。

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL,"http://api.ean.com/ean-services/rs/hotel/v3/list?minorRev=4&cid=55505&apiKey=5q4gzx43g6ukcrq798z2hz75&customerSessionId=&locale=en_US&currencyCode=USD&xml=<HotelListRequest><city>new%20delhi</city><RoomGroup><Room><numberOfAdults>2</numberOfAdults><numberOfResults></numberOfResults></Room></RoomGroup></HotelListRequest>"); 
curl_setopt($ch, CURLOPT_FAILONERROR,1); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 

curl_setopt($ch, CURLOPT_TIMEOUT, 15); 
$retValue = curl_exec($ch);      
curl_close($ch); 

echo $retValue; 

上記のAPIは、あなた自身でテストできるように機能しています。あなたは、XMLコンテンツを指定する必要が

答えて

2

Acceptヘッダフィールドを設定して、HTTPリクエストで明示的に入力し、そのサーバーがたとえばたいです知っているREST:あなたのケースでは

Accept: text/xml,application/xml;q=1 

を(= 1 qはデフォルト値です) :

curl_setopt($ch,CURLOPT_HTTPHEADER,array('Accept: text/xml,application/xml')); 
関連する問題