我试图获取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栏中直接尝试它时,它正在工作。我做错了吗?
请帮我。
答案 0 :(得分:1)
您需要申请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"
}
答案 1 :(得分:0)
您尚未提供要接收回复的有效格式。根据IP Info DB's official documentation,API会返回原始回复。要获取JSON响应,请在API请求中包含参数format
。因此,您的API网址现在变为:
$GEOCODE = "http://api.ipinfodb.com/v3/ip-city/?key=$API_KEY&format=json&ip=70.27.250.191";