所以,如果我把它放在我的浏览器网址中:
https://maps.googleapis.com/maps/api/place/search/xml?location=45.508867,-73.554242&radius=500&sensor=false&key=mykey
有效。但是如果我在PHP中尝试完全相同的调用,我会得到ACCESS DENIED:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://maps.googleapis.com/maps/api/place/search/xml");
curl_setopt($ch, CURLOPT_POSTFIELDS, "location=45.508867,-73.554242&radius=500&sensor=false&key=mykey");
$result = curl_exec($ch);
echo $result;
?>
我尝试了很多不同的选项和微小的改动,但没有任何作用,我无法弄清楚原因。
答案 0 :(得分:0)
如果您出于测试目的而这样做,请确保未启用SSL验证,因为这样可以防止它可能阻止执行请求表单。
答案 1 :(得分:0)
我相信你错过了这个卷曲设置:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
答案 2 :(得分:0)
$latitude = 27.7172;
$longitude = 85.3240;
$radius = 50000;
$name = "kupondole";
$url = "https://maps.googleapis.com/maps/api/place/search/json?name=".urlencode($name)."&location=".$latitude.",".$longitude."&radius=".$radius."&key=MY_KEY";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$response = curl_exec($ch);
curl_close($ch);
完美无缺。