PHP中的HTTP请求不适用于特定的API

时间:2015-02-16 02:02:57

标签: php json http request

我有一个非常简单的脚本:

<?php
$jsonurl = "http://api.wipmania.com/json";
$json = file_get_contents($jsonurl);
echo $json;
?>

适用于此网址,但是当我使用此网址调用它时:https://erikberg.com/nba/standings.json

它没有回应数据。这是什么原因?我可能在这里错过了一个概念。感谢

1 个答案:

答案 0 :(得分:2)

该特定网址的问题在于它需要不同的用户代理,与PHP与file_get_contents()

使用的默认值不同

这是使用CURL的更好示例。虽然需要更多行代码来配置它并使其运行,但它更加强大:

// create curl resource
$ch = curl_init();

// set the URL
curl_setopt($ch, CURLOPT_URL, 'https://erikberg.com/nba/standings.json');

// Return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// Fake the User Agent for this particular API endpoint
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

// $output contains the output string.
$output = curl_exec($ch);

// close curl resource to free up system resources.
curl_close($ch);

// You have your JSON response here
echo $output;