2016-06-10 4 views
1

Httpful PHP library을 사용하여 JSON 또는 XML을 사용하여 API에서 데이터를 가져옵니다. 내 코드는 매우 간단하며 기본 인증을 사용하여 url의 응답을 반환합니다.XML 또는 JSON API에서 Httpful PHP를 사용하여 구문 분석 응답

$url = "API_URL"; 
$response = \Httpful\Request::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에 헤더를 전환하기로 포맷 데이터를 가지고 당신의 JSON 구조에서 찾고에서

[ 
    { 
    "STREET1": "" 
    "STREET2": "" 
    "CITY": "" 
    "STATE": "" 
    "ZIP": "" 
    "COUNTRY": "" 
    "WORKPHONE": "" 
    } 
] 
+0

@jszobody 예,이 기능이 작동했습니다. 또한 대/소문자를 구분합니다. '$ response-> body [0] -> CITY'는 올바른 출력입니다. – cul8r

+0

끝내 주셔서 감사합니다. 방금 아래 답변으로 게시했습니다. 수락 할 수 있습니까? – jszobody

답변

2

을, 응답이 중첩 된 것처럼 보입니다.

그래서 난 당신과 같이 몸에 액세스해야합니다 믿습니다

echo $response->body[0]->STREET1; 

사이드 노트 : 그것은 검사하는 것이 유용 당신의 $response을 알아낼 수 없을 때 단지 var_dump($response)을 수행하여 그것을 탐색하는 방법. 결과 구조를 보면 대개 답이 매우 명확합니다!