获取API请求的JSON响应
问题描述:
我试图获得API请求的json响应。获取API请求的JSON响应
$GEOCODE = "http://api.ipinfodb.com/v3/ip-city/?key=$API_KEY&ip=70.27.250.191";
$json = file_get_contents($GEOCODE);
$data = json_decode($json);
dd($data);
返回输出:null
。 但是,当我直接在addrress栏中尝试它时,它正在工作。我做错了吗? 请帮帮我。
答
您需要申请JSON:
$GEOCODE = "http://api.ipinfodb.com/v3/ip-city/?key=$API_KEY&ip=70.27.250.191&format=json"; //<--THIS
$json = file_get_contents($GEOCODE);
$data = json_decode($json);
dd($data);
//output:
object(stdClass)#7 (11) {
["statusCode"]=>
string(2) "OK"
["statusMessage"]=>
string(0) ""
["ipAddress"]=>
string(13) "70.27.250.191"
["countryCode"]=>
string(2) "CA"
["countryName"]=>
string(6) "Canada"
["regionName"]=>
string(6) "Quebec"
["cityName"]=>
string(8) "Montreal"
["zipCode"]=>
string(7) "H1A 0A1"
["latitude"]=>
string(7) "45.5088"
["longitude"]=>
string(8) "-73.5878"
["timeZone"]=>
string(6) "-05:00"
}
答
您尚未提供您希望收到回复的有效格式。根据IP Info DB's official documentation,API返回原始响应。为了获得JSON响应,请在您的API请求中包含参数format
。所以,你的API URL现在变成:
$GEOCODE = "http://api.ipinfodb.com/v3/ip-city/?key=$API_KEY&format=json&ip=70.27.250.191";
什么是'DD($地理编码)'的输出?它可能在浏览器中工作,但在字符串中填充了'$ API_KEY'? – 2015-01-15 17:18:53
'var_dump($ json);'你会得到什么? – Steve 2015-01-15 17:19:04
@DavidBarker:'string'http://api.ipinfodb.com/v3/ip-city/?key=shows-my-api-key-here&ip=70.27.250.191'(长度= 121)' – user1012181 2015-01-15 17:20:15