【发布时间】:2018-11-10 23:10:12
【问题描述】:
我正在尝试使用 SSL 的 GET 请求和使用 file_get_contents 函数的基本身份验证:
$username = "XXXXXXXXXX";
$password = "XXXXXXXXXX";
$url = "https://stream.watsonplatform.net/authorization/api/v1/token?url=https://stream.watsonplatform.net/speech-to-text/api";
$context = stream_context_create(array("http" => array("header" => "Authorization: Basic " . base64_encode("$username:$password"))));
$data = file_get_contents($url, false, $context);
echo $data;
这是我收到的错误消息:
警告:file_get_contents(https://stream.watsonplatform.net/authorization/api/v1/token?url=https://stream.watsonplatform.net/speech-to-text/api):打开流失败:HTTP 请求失败! HTTP/1.0 500 服务器错误...
我已经确认openssl 已启用:
我们不妨提前解决这个问题:
为什么不直接使用 cURL?
我可以。但我也想弄清楚为什么file_get_contents 不起作用。我喜欢file_get_contents 的相对简单。叫我疯子。
【问题讨论】:
-
使用其他没有基本身份验证的 HTTPS URL,是否有效?
-
我可以用我的浏览器点击 url,我不能用
file_get_contents,我怀疑他们正在检测自动尝试。使用 curl 你可以让它看起来更像是一个“真实的”人访问,你没有file_get_contents的那些选项@ -
@AnthonyB 是的,例如,它适用于
https://google.com。 -
@smith 很有趣......所以它可能是这个端点独有的?我将尝试一个基本的 cURL 设置,看看我是否遇到了同样的问题。
-
这是我的猜测,我只是为你做了一些基本的测试。
标签: php file-get-contents