2014-10-01 5 views
1

나는 Envato API에 연결을 시도하고 있지만, 모든 너무 자주 나는 다음과 같은 오류가 발생합니다 :스트림을 열지 못했습니다. HTTP 요청이 실패했습니다! HTTP/1.1 422 처리 할 수 ​​없음 법인

이 스트림 열지 못했습니다 : HTTP 요청 실패! HTTP/1.1 422 처리 할 수 ​​없음 법인 여기

내 코드는

$codecanyon_url = file_get_contents("http://marketplace.envato.com/api/edge/categories:codecanyon.json"); 
$codecanyon_decode = json_decode($codecanyon_url, true); 

foreach($codecanyon_decode['categories'] as $x=> $item) { 
     echo $item['name'].' - '. $item['path']; 
     echo "<br>"; 
    } 

는 사람이 잘못 아무것도 볼 수 있습니까입니까? 간헐적으로 발생합니다. 나는 urlencode URL을 시도했지만 아무런 차이가 없다.

제안 사항?

덕분에, 댄

+0

동일한 문제가 있습니다. 지금까지 내가 알아 낸 점은 브라우저에서 API URL을 먼저 실행하면 작동하지만 백엔드에서도 작동하기 시작한다는 것입니다. 당신도 똑같은 경험을합니까? 그들 옆에 어떤 종류의 캐싱 문제가있는 것 같습니다. –

+0

예, 브라우저에서 URL로 이동하면 정상적으로 작동합니다. 또한 내가 file_get_contents에 URL을 복사하면 처음에는 오류가 발생하기 시작합니다. – danyo

+0

하지만 브라우저에서 매번 올바르게 작동합니까? –

답변

2

나는 API 요청에 사용자 에이전트 헤더를 추가하여 문제를 해결할 수 있었다.

User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36

이 문제가 해결 될 경우 알려 주시기 바랍니다.

+1

이렇게하면됩니다 : ini_set ('user_agent', 'Mozilla/5.0'); – danyo

+0

예. 방금 브라우저에서 사용자 에이전트 문자열을 복사했습니다. –

+0

@dan Dan 감사합니다. 귀하의 코드가 내 문제를 해결하는 데 도움이되었습니다. 방금이 시간을 낭비했습니다. :) –

관련 문제