2015-02-04 2 views
0

이 문제는 저를 혼동시킵니다. 여기 내 코드입니다 :cURL 호출에서 반환 된 json을 조작하려고 시도했습니다.

try { 
    //API Url 
    $url = 'https:<REST OF URL>'; 

    //Initiate cURL. 
    $ch = curl_init($url); 

    //The JSON data. 
    $jsonData = array(
     'UserName' => '<HIDDEN>', 
     'Password' => '<HIDDEN>' 
    ); 

    //Encode the array into JSON. 
    $jsonDataEncoded = json_encode($jsonData); 

    //Tell cURL that we want to send a POST request. 
    curl_setopt($ch, CURLOPT_POST, 1); 

    //Attach our encoded JSON string to the POST fields. 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded); 

    //Set the content type to application/json 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json')); 

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

    //Execute the request 
    $content = curl_exec($ch); 

catch(Exception $e) { 
    trigger_error(sprintf(
     'Curl failed with error #%d: %s', 
     $e->getCode(), $e->getMessage()), 
     E_USER_ERROR); 
} 

임 PHP 스크립트를 실행하는 브라우저를 사용하고 출력 내가해야 할 것입니다 JSON 형식이 될 것으로 보인다. 그러나 json 디코딩을 추가하고 print_r 또는 var_dump 출력을 시도 할 때 단순히 부울 (true) 또는 int (1)을 가져 오면 데이터를 배열로 가져오고 싶지 않습니다. 이상하고 가장 관련이있는 것은 print_r, var_dump 또는 심지어 에코를 사용하지 않고 위의 코드에서 json 형식을 화면에 인쇄한다는 것입니다.

도움을 주시면 감사하겠습니다. 내가 당신의 포인트를 가지고 보인다

{"AvailableAdvisers":[{"AdviserId":"1345678","BusinessEntityName":"Bob Smith Finance","FullName":"Bob Smith"},{"AdviserId":"12345678","BusinessEntityName":"Globe Home Loans Pty Ltd","FullName":"Jane Doe"}],"FirstName":"Sam","LastName":"Sung","LendingPartnerStaffId":"12345674356","Locations":[{"LendingPartnerLocationId":"123467867647","Name":"Bank"},{"LendingPartnerLocationId":"12324354545","Name":"Jane Smith"}],"UserName":"Username"} 
+0

논의 할 주제가 없습니다. 그래서 당신은'$ content'를 얻었습니다 - 당신은'var_dump ($ content);'그리고 그것은'true' 값입니다, 그러나 당신은 무엇을 true로 변환하겠습니까 ??? 어쩌면 다른 쪽에서 코드를 보여줘야할까요? 요청에 대한 응답을 생성하는 서비스 또는 어떤 서비스를 사용합니까? 설명서를 읽으십시오. 아마 일부 요청 매개 변수를 변경해야합니까? – Alex

+0

브라우저에서 API가 json 문자열을 반환했음을 나타내므로 json 문자열이 $ content 변수가 될 것으로 예상됩니다. 그러나 이것은 사실이 아닙니다. print_r ($ content)은 단순히 정수 1을 보여줍니다. 그래서 json 문자열이 $ content가되어야합니다. 무슨 뜻인지 알겠습니까? –

+0

아니요, 절대 아니요. 1. 당신은 curl 요청을한다. 2. 성공적으로 실행 된 것을 요청하고 당신이'$ content' 변수에 넣은 것을 돌려 준다. 3. 당신은이'$ content'를 출력했고 그것은 단지'int (1)'입니다. ..... 어떻게 든 당신의 의견을 근거로하는 어떤 이유에서든 나는 대답하지 않습니다. 그러나 당신은이 반응이 불완전하다는 것을 확신합니다. 그러나 사실은 그것이 완전하다고 말한다. :-) 추가 할 내용이 없습니다 :-) – Alex

답변

1

확인 :

편집 여기

가 화면에 나타납니다 json으로 출력된다. 그래서

는 아마도 줄을 추가해야 $content 변수로 컬 반응을 얻을 : 전에

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

당신의 curl_exec

그러나 컬 응답이 페이지에 표시되는 방식 기적 :-) 진짜 수수께끼이다

+0

나는 바보처럼 느껴진다. 그것은 효과가있다! –

+0

그것, 이상한 일, 페이지에 어떻게 나타나는지 말해줘. OH : P –

+0

:-))) 프로젝트에 행운을 비네! 어떻게'echo'없이 나타날 수 있는지 전혀 모르겠다 .--( – Alex

관련 문제