FFi*_*ish 17 php curl localhost
我在Mac OSX上使用MAMP Pro 1.9.4
在phpinfo()我看到curl已启用
cURL support enabled
cURL Information 7.20.0
Age 3
Features
AsynchDNS No
Debug No
GSS-Negotiate No
IDN Yes
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI No
krb4 No
libz Yes
CharConv No
Protocols dict, file, ftp, ftps, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, smtp, smtps, telnet, tftp
Host i386-apple-darwin8.11.1
SSL Version OpenSSL/0.9.7l
ZLib Version 1.2.3
Run Code Online (Sandbox Code Playgroud)
我的脚本是从Google apis中对lat进行地理编码.它在我的托管服务提供商服务器上在线工作,但不在localhost上工作..为什么?
$latlng = "44.3585230889,8.57745766643";
$lang = "it";
$geocodeURL = "http://maps.googleapis.com/maps/api/geocode/json?latlng=$latlng&sensor=false&language=$lang";
$ch = curl_init($geocodeURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
$geocode = json_decode($result);
$location = $geocode->results[0]->address_components[0]->long_name;
$city = $geocode->results[0]->address_components[1]->long_name;
$province = $geocode->results[0]->address_components[2]->long_name;
$region = $geocode->results[0]->address_components[3]->long_name;
$country = $geocode->results[0]->address_components[4]->long_name;
$geo_status = $geocode->status;
$geo_str = "$location, $city, $province, $region, $country";
} else {
$geo_status = "HTTP_FAIL_$httpCode";
$geo_str = "Failed: $geo_status";
}
Run Code Online (Sandbox Code Playgroud)
小智 34
这不是关于代理,而是关于如何使用googleapis.
添加CURLOPT_SSL_ on您的代码并将其设置为false
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
Run Code Online (Sandbox Code Playgroud)
小智 7
在具有自签名证书的本地服务器(例如 XAMPP)上,您必须使用:
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, false);
Run Code Online (Sandbox Code Playgroud)
注意:尽管对于测试环境来说不安全,但它解决了问题。
记得激活生产服务器!
这可能是防火墙问题.默认情况下,卷曲尝试使用端口1080,该端口可能未在您的localhost /路由器/ ISP上打开.
| 归档时间: |
|
| 查看次数: |
54357 次 |
| 最近记录: |