我意识到这是一个以前被问过几次的问题,但我已经尝试了给定的答案,我觉得,上下都觉得我的头撞在墙上。
PHP /卷曲:
$this->ch = curl_init();
curl_setopt($this->ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($this->ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($this->ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($this->ch, CURLOPT_URL, "https://maps.googleapis.com/maps/api/geocode/json?address=1956+Mountain+View+Drive,+San+Diego,+CA&key=?????");
curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, "GET");
$response = curl_exec($this->ch);
var_dump($response);
var_dump(curl_error($this->ch)); die;
按原样,我得到"无法解析主机:maps.googleapis.com;未知错误"。如果我加上这个:
curl_setopt($this->ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 )
在另一篇帖子中建议,错误更改为:"无法解析主机:maps.googleapis.com;姓名或服务未知"
无论哪种方式,我似乎无法找到一种不会出错的方法。我可以将URL放到Web浏览器中,它对我来说很好。我们有很多其他API集成,它们使用与cURL类似的设置并且工作正常,所以我不觉得它是一般服务器范围的问题,但它是特定于此用例的
有什么想法吗?
答案 0 :(得分:0)
您是否在继续之前创建了地理编码API? 如果没有,请转到http://console.developers.google.com> API& auth> API>在Google Maps API下按更多>地理编码API>启用api并获取密钥 所以代码就像
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_URL, "https://maps.googleapis.com/maps/api/geocode/json?address=1956+Mountain+View+Drive,+San+Diego,+CA&key=YOUR_KEY_HERE");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
$response = curl_exec($ch);
print "<pre>";
var_dump($response);
var_dump(curl_error($ch)); die;
如果以上不起作用,那么你可能会在我假设的curl库中遇到问题,
除此之外,因为您只是请求获取数据,您只需使用
的file_get_contents()
<?php
echo file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=1956+Mountain+View+Drive,+San+Diego,+CA&key=YOUR_KEY");
然后输出
{ "results" : [ { "address_components" : [ { "long_name" : "1956", "short_name" : "1956", "types" : [ "street_number" ] }, { "long_name" : "North Mountain View Drive", "short_name" : "N Mountain View Dr",...