我正在尝试通过PHP连接到IIS Web服务器上的SmartyStreets API(LiveAddress)。我从这里复制了file_get_contents和cURL示例:SmartyStreets github PHP examples。他们都不工作。如果我将URL直接粘贴到浏览器中,则可以正常工作。 file_get_contents示例返回:
Warning: file_get_contents(https://api.qualifiedaddress.com/street-address/?street=817+Quail+Ln.+%2312+bakersfield%2C+ca+93309&auth-token=5Nk1%2FA) [function.file-get-contents]: failed to open stream: No such file or directory in C:\Inetpub\includes\myclass.php on line 28
我已在phpinfo中确认allow_url_fopen已打开。我也尝试过设置user_agent。不过,这不起作用。
cURL示例返回false。
这与IIS有关吗?还是由于防火墙设置?如果是这样,我如何找出要打开的端口?还有其他可能性吗?谢谢!
尝试一下。通常,使SSL
与cURL
配合使用就足够了(这是用于API的SSL的某种最小/默认/简单/广泛分布;)配置),但无论如何,它取决于提供者SSL配置。
curl_setopt($ch, CURLOPT_SSLVERSION, 3); // OpenSSL issue
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // Wildcard certificate
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
如果不起作用,请尝试了解水深。大约SSL configuration of your provider
,您肯定会找到解决方案。
该网络服务需要授权。
有关如何通过身份验证的详细信息,请参见curl_setopt
manual。>>
我终于让cURL工作了。问题是该链接正在使用SSL(URL中的https)。我通过回显curl_error($ ch);发现了这一点。我添加了这个cURL选项,它运行良好: