2012-12-11 6 views
0

Instagram API를 쿼리하려하지만 CURLOPT_RETURNTRANSFER가 예상대로 작동하지 않습니다. CURLOPT_RETURNTRANSFER는 true로 설정되어 있지만 부울 값은 모두 얻지 못합니다. 내가 무엇을 CURLOPT_RETURNTRANSFER를 읽었는지, 나는 아래에서 그렇게했다. 제발 조언. 감사합니다CURLOPT_RETURNTRANSFER 응답을 반환하지 않습니다.

public function __construct($uri) { 
    $this->handler = curl_init($uri); 
      $this->_setOptions(); 
} 

protected function _setOptions() { 
    curl_setopt($this->handler, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($this->handler, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($this->handler, CURLOPT_USERAGENT, self::DEFAULT_USER_AGENT); 

} 

public function getResponse() { 
    $response = curl_exec($this->handler); 
    curl_close($this->handler); 
    return $response; 
} 

답변

0

당신의 부울 거짓입니까?

false 인 경우 오류가 발생해야합니다.

는 curl_exec 라인 후 folowing를 추가

if(curl_errno($this->handler)) 
{ 
    echo curl_error($this->handler); 
} 
+0

내가 가진 오류 메시지는 다음과 같습니다. SSL 인증서 문제 인 경우, CA 인증서가 올바른지 확인하십시오. 세부 : 오류 : 14090086 : SSL 루틴 : SSL3_GET_SERVER_CERTIFICATE : https://api.instagram.com/v1/tags/nyp/media/recent?client_id=db5ec075c6da4224aafcf55bf3a0bc43 : 인증서가 나는이 URL을 실행하려고 확인 실패 브라우저에서는 실행할 수 있지만 응용 프로그램에서는 실행할 수 없습니다. 어떤 생각? –

0

당신이하는 GetResponse() 메소드를 호출하면 ('http://someurl.com') 새로운 클래스 이름을 호출 한 후?

$x = new ClassName('http://www.google.com'); 
var_export($x->getResponse(); 

편집을 시도 : 일부 컬 오류가 바로 curl_exec($this->handler); 후 문제가 무엇인지 파악하기 위해 사용 print_r(curl_getinfo($this->handler));

public function last_error() { 
    echo curl_error($this->handler); 
} 
0

일어난 경우도보고 오류 출력 방법을 추가 호출 할 수 있습니다.

2

다음과 같이 함수를 작성하여 그것을 해결할 수 있습니다

protected function _setOptions() { 
    curl_setopt($this->handler, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($this->handler, CURLOPT_FOLLOWLOCATION, true); 
    curl_setopt($this->handler, CURLOPT_SSL_VERIFYPEER, false); 
    curl_setopt($this->handler, CURLOPT_USERAGENT, self::DEFAULT_USER_AGENT); 
} 

당신은 SSL 프로토콜을 확인하지 않도록 이런 식으로. 그것이 docs에서 언급 된 바와 같이, CURLOPT_SSL_VERIFYHOST 2로 설정해야합니다, 항상 생산 환경에서 보안 SSL 조건에서 작동하는 것이 좋습니다

curl_setopt($this->handler, CURLOPT_SSL_VERIFYHOST, 0); 

: 당신이 CURLOPT_SSL_VERIFYHOST을 설정할 수있는 추가 옵션으로

보안 SSL 연결을 보장합니다.

+0

2012 년 주제 였다고해도 그 대답이라고 생각합니다! – Kangoo13

+1

사실, 질문조차도 여전히 활동적이었습니다 ... – Kruser

관련 문제