2017-12-14 4 views
0

json 파일을 가져 오기 위해 HTTP RESTFUL API를 사용하고 있습니다. 나는 cURL PHP를 사용하여 apiCredentials를 얻으려고하고 있습니다. 아래 코드를보십시오.PHP Laravel cURL API 쿠키가 사용되지 않았습니다.

<?php 
     $url = 'http://api.olhovivo.sptrans.com.br/v2.1/Login/Autenticar?token='.$token; 
     $curl = curl_init($url); 


     curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($curl, CURLOPT_POST, true); 
     curl_setopt($curl, CURLOPT_POSTFIELDS, ""); 

     $cookiesFile = 'cookies.txt'; 
     curl_setopt($curl, CURLOPT_COOKIEJAR, $cookiesFile); 
     curl_setopt($curl, CURLOPT_COOKIEFILE, $cookiesFile); 

     $result = curl_exec($curl); 

     curl_close($curl); 

     echo $result; 

    ?> 

나는 결과로 진정한을 얻고있다. { "메시지": "이 요청에 대한 승인이 거부되었습니다."} 사용할 때 다른 API 메소드를 사용할 수 없습니다.

내 공용 폴더에서 cookie.txt 파일을 생성 중이지만 어떤 이유로 사용되지 않았습니다.

내가 문제는 내가 API로 만든 쿠키를 사용할 수 없다고 생각하지만 내가해야하는 것처럼 내가 cURL을 사용하는지 잘 모르겠다.

중요한지 모르겠지만 laravel 프레임 워크를 사용하고 있습니다.

미리 감사드립니다.

답변

0

토큰 대신 $token이되어야합니까?

enter image description here

편집 :이 그냥 오타가 있었다 나는 내 서버에서 데이터를 얻는 경우에 좋아, 내가 확인. 나는이 URI에 대한 어떠한 내용도 얻지 못한다. (나는 서비스를 모른다.) 매개 변수를 제거하고 게시 필드에 넣으면 응답을받습니다.

$url = 'http://api.olhovivo.sptrans.com.br/v2.1/Login/Autenticar'; 
     $post = ["token" => "asd"]; 

     $ch = curl_init($url); 

     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
     curl_setopt($ch, CURLOPT_POST, true); 
     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); 

     $result = curl_exec($ch); 

     echo $result; 

그리고는 당신이 얻을 : {"Message":"No HTTP resource was found that matches the request URI 'http://api.olhovivo.sptrans.com.br/v2.1/Login/Autenticar'."}

어느 쪽이든, 서버는하지 var_dump(curl_getinfo($ch)) 확인하면 오류가 있지만을 0x200을 반환합니다. 그래서 나는 당신이 페이로드 나 URI로 토큰으로 보내는 것에 의존한다고 생각합니다.

+0

답장을 보내 주셔서 감사합니다. 사실 이것은 typo 내가 stackoverflow 코드를 얻었을 때 만든, 미안 해요 –

+0

어떤 이유로, 내가 매개 변수를 제거하고 게시 필드에 넣어, 내가 "사실"응답을받지 않습니다 동일한 토큰으로 수신. 나는 또한 당신이받은 메시지를 얻습니다. –