JSON
$res = simplexml_load_file($url);
としたところ、簡単にレスポンスをPHPオブジェクト化できて便利。
と思ったら、XMLのネームスペースに「:」が入ってると、うまくいかなくなった。APIのバージョンをあげるとダメ。
別の方法を模索することにした。
$res = file_get_contents($url);
$res = str_replace('header:Header','Header',$res);
$res = str_replace('itemSearch:ItemSearch','ItemSearch',$res);
こんどはうまくいった。が、正直美しくない。
文字列として受け取って、「:」をリプレイスして、もう一回PHPオブジェクトに変換する。
美しくない。
しかも、よくみたら、データが不完全だ。全然ダメだ、これ。
true
true
true このXMLが
[Arg] => Array
(
[0] => true
[1] => true
[2] => true
[3] => true
)
trueってなんだよ。これじゃわかんねーよ。。。
XML使うのはやめた。JSONのほうが今っぽいし、PHPの軽ノリに合ってる(はず)。
$res = file_get_contents($url);
$res = json_decode($res);
レスポンスもきっちり受け取れた。コードも短くなった。
完璧だ。
と思ったら、連想配列の順番が変わってる。
Response :
{
Header :
Body :
}がなぜか
Response :
{
Body :
Header :
}となった