2013-04-19 2 views
1

내 서버가 작동하지 않는 것으로 보입니다. 이 오류가 발생합니다.스트림을 열지 못했습니다 : HTTP 요청에 실패했습니다! HTTP/1.0 400 잘못된 요청

failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request 

이것은 내가 지금 년 이상 구현 한 한 내 코드이며, 별도의 준비 서버에 작업을 확인할 수있다.

$url = 'http://graph.facebook.com/10150624051911279/photos/all'; 

$response = json_decode(file_get_contents($url, true)); 


foreach ($response->data as $photo) { 
    echo '<li><a href="' . $photo->link . '" ><img class="img" src="timthumb.php?src=' . $photo->source . '&h=175&w=175" /></a></li>'; 
} 

내 서버에서이 문제가 발생하지 않을 수 있습니다. 나는 혼란 스럽다.

+1

. "working"서버의 upstread가 변경되었는지 확인하십시오. 프록시가 부과되었거나 오작동 중일 수 있습니다. 아마도 서버의 내용이 업그레이드되거나 변경되었을 수도 있습니다. –

+0

사용자 에이전트를 설정해야하며 this.http : //stackoverflow.com/a/43750037/6521116을 참조하십시오. –

답변

4

해당 URL에 액세스하려면 액세스 토큰을 얻어야하기 때문에 요청이 실패해야합니다. 따라서 Facebook은 "400 Bad Request"상태와 함께

{ 
    "error": { 
     "message": "An access token is required to request this resource.", 
     "type": "OAuthException", 
     "code": 104 
    } 
} 

을 반환합니다. 또한 URL을 열고 있기 때문에 file_get_contents의 두 번째 매개 변수는 false 여야합니다 (include 경로를 검색 할 지점이 없다는 것을 알고 있으면 해당 경로가 없습니다).

은 여전히 ​​페이스 북의 응답을 얻을 당신이 할 수있는 오류를 무시하려면 또 다른 컴퓨터에서 작동하는 사실은 많은 것을 의미하지 않는다

$url = 'http://graph.facebook.com/10150624051911279/photos/all'; 
$context = stream_context_create(array(
    'http' => array(
    'ignore_errors'=>true, 
    'method'=>'GET' 
    // for more options check http://www.php.net/manual/en/context.http.php 
    ) 
)); 
$response = json_decode(file_get_contents($url, false, $context)); 
관련 문제