Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Can';尝试所有已知解决方案后,无法使文件内容或卷曲生效_Php_Curl_File Get Contents - Fatal编程技术网

Php Can';尝试所有已知解决方案后,无法使文件内容或卷曲生效

Php Can';尝试所有已知解决方案后,无法使文件内容或卷曲生效,php,curl,file-get-contents,Php,Curl,File Get Contents,我正试图通过PHP连接到IIS web服务器上的smartystreets API(liveaddress)。我从这里复制了文件\u get\u内容和cURL示例:。他们两个都不工作。如果我将URL直接粘贴到浏览器中,它就可以工作了。文件获取内容示例返回: Warning: file_get_contents(https://api.qualifiedaddress.com/street-address/?street=817+Quail+Ln.+%2312+bakersfield%2C+ca+

我正试图通过PHP连接到IIS web服务器上的smartystreets API(liveaddress)。我从这里复制了文件\u get\u内容和cURL示例:。他们两个都不工作。如果我将URL直接粘贴到浏览器中,它就可以工作了。文件获取内容示例返回:

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已打开。我还尝试设置一个用户代理。不过,这不起作用

cURL示例返回false


这可能与IIS有关吗?或者可能是由于防火墙设置?如果是,我如何找到要打开的端口?还有其他的可能性吗?谢谢大家!

Web服务需要授权


有关如何传递身份验证详细信息的详细信息,请参阅。

我终于开始工作了。问题是链接使用SSL(url中的https)。我通过重复curl_错误($ch)发现了这一点;我添加了一个卷曲选项,效果非常好:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

我不确定文件内容无法工作的原因是否与此相关。

试试这个。通常,让
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);

如果不起作用,试着了解smth。关于提供商的SSL配置,您肯定会找到解决方案。

据我所知,除了我传递的唯一身份验证令牌之外,没有其他授权。API文档中没有任何关于进一步授权的内容,如果我将完全相同的URL粘贴到浏览器中,它可以正常工作并返回JSON。如果需要进一步授权,为什么不在示例中?我在这里遗漏了什么吗?复制该url并尝试在浏览器中找到它。。。上面写着“需要401授权”…啊,那是因为我更改了身份验证令牌。我觉得在网上分享不是个好主意;)我在下面回答了我自己的问题(这是api中使用ssl的一个问题),但Paul的回答比我好。如果你有一个类似的问题,你可能想阅读这两本书,以获得我解决问题的完整路径。