我正在使用Httpful PHP库从使用JSON或XML的API获取数据。我的代码非常简单,通过基本身份验证从url返回响应。
$url = "API_URL";
$response = HttpfulRequest::get($url)
->expectsXml() // or ->expectsJson()
->authenticateWith('USERNAME', 'PASSWORD')
->send();
echo "{$response}";
我成功地显示了整个响应输出,但如何返回单个变量?
例如,如果我只想从每个人那里接收城市,这会是什么样子?我试过echo "{$response->body->city}";
,但似乎不起作用。
api返回的XML格式如下:
<ArrayOfPERSON xmlns:i="xxx" xmlns="xxx">
<PERSON>
<CITY></CITY>
<COUNTRY></COUNTRY>
<STATE></STATE>
<STREET1></STREET1>
<STREET2></STREET2>
<WORKPHONE></WORKPHONE>
<ZIP></ZIP>
</PERSON>
</ArrayOfPERSON>
将标头切换为JSON会将数据格式化为:
[
{
"STREET1": ""
"STREET2": ""
"CITY": ""
"STATE": ""
"ZIP": ""
"COUNTRY": ""
"WORKPHONE": ""
}
]
从JSON结构来看,响应似乎是嵌套的。
所以我相信你需要这样接近身体:
echo $response->body[0]->STREET1;
旁注:当你不知道如何导航时,只需做一个var_dump($response)
来检查你的$response
总是很有用的。只看得到的结构通常会让答案很清楚!