2013-10-27 63 views
0

我想在PHP中使用HTTP標頭調用http://dbpedia.org/page/Los_Angeles以獲得教育任務。它必須是這個網址,即我不能直接使用JSON網址。接收HTTP標頭406錯誤

<?php 
// Create a stream 
$opts = array(
    'http'=>array(
    'method'=>"POST", 
    'header'=>"Accept: application/json" 
    ) 
); 

$context = stream_context_create($opts); 
$url = "http://dbpedia.org/page/Los_Angeles"; 
$data = file_get_contents($url,false,$context); 
echo $data; 
?> 

我面對這個錯誤:

Warning: file_get_contents(http://dbpedia.org/page/Los_Angeles): failed to open stream: HTTP request failed! HTTP/1.1 406 Unacceptable.

請幫助擺脫這種錯誤的。注意:我閱讀了這個錯誤,並找到了使用CURL的建議。但是,我不想進入CURL的安裝。請建議使用file_get_contents

+0

我在瀏覽器中獲得了200個,所以只需檢查它是否從您的位置起。也許它也需要一個用戶代理?你可以用'file_get_contents'來提供'stream_context'來完成這個工作,參見PHP手冊。 – halfer

+0

您可以根據頁腳中的鏈接獲取[此JSON版本](http://dbpedia.org/data/Los_Angeles.json)嗎? '':-)。 – halfer

+0

感謝Halfer。但是,你能詳細說明用戶代理嗎?我需要使用http://dbpedia.org/page/Los_Angeles網址。 – Margi

回答

1

406表示application/json不可用。

維基百科:

406不可接受請求的資源僅能夠生成內容根據在請求中發送的Accept標頭不能接受的。

<?php 
    $url = "http://dbpedia.org/page/Los_Angeles"; 
    $data = file_get_contents($url); 
    echo $data; 
?>