尝试所有已知的解决方案后无法使file_get_contents或cURL正常工作

问题描述 投票:1回答:3

我正在尝试通过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有关吗?还是由于防火墙设置?如果是这样,我如何找出要打开的端口?还有其他可能性吗?谢谢!

php curl file-get-contents smartystreets
3个回答
3
投票

尝试一下。通常,使SSLcURL配合使用就足够了(这是用于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,您肯定会找到解决方案。


0
投票

该网络服务需要授权。

有关如何通过身份验证的详细信息,请参见curl_setopt manual。>>


0
投票

我终于让cURL工作了。问题是该链接正在使用SSL(URL中的https)。我通过回显curl_error($ ch);发现了这一点。我添加了这个cURL选项,它运行良好:

© www.soinside.com 2019 - 2024. All rights reserved.