我尝试使用 GiantBomb api 来查询视频游戏,目前当我在浏览器中输入 URL 时,它工作得很好。Json 数据出现。
这是一个示例网址.. http ://www.giantbomb.com/api/search/? api_key=83611ac10d0dfghfgh157177ecb92b0a5a2350c59a5de4&query=Mortal+Kombat&format=json
但是当我尝试使用我刚刚开始构建的 php 包装器时,它返回 html?? 这是我的包装代码的开始......(现在非常业余)
你会注意到在“请求”方法中,我已经注释掉了 json_decode($url) 的返回值,因为当我取消注释时,页面会抛出 500 错误???所以我想看看当我回应它时会发生什么。它呼应了一个 html 页面。当然,当您在浏览器中输入该 url 时,它应该只是回显显示的内容,不是吗?
但是......如果我用 GoogleMap url 替换 url,它会很好地回显 Json 数据,而不使用 json_decode。关于这里发生的事情有什么想法吗????
class GiantBombApi {
public $api_key;
public $base_url;
public $format;
function __construct() {
$this->format="&format=json";
$this->api_key = "83611ac10d0d157177ecb92b0a5a2350c59a5de4";
$this->search_url = "http://www.giantbomb.com/api/search/?api_key=".$this- >api_key."&query=";
}
public function search($query){
$query = urlencode($query);
$url = $this->search_url.$query.$this->format;
return $this->request($url);
}
public function request($url) {
$response = file_get_contents($url);
echo $response;
//return json_decode($response, true);
}
}
//TESTING SECTION
$games = new GiantBombApi;
$query = $_GET['search'];
echo $games->search($query);