gpt4 book ai didi

php - file_get_contents 忽略 verify_peer=>false?

转载 作者:太空宇宙 更新时间:2023-11-03 12:40:14 26 4
gpt4 key购买 nike

使用 https 主机的 file_get_contents 工作得很好,除了特定的主机(来自某公司的测试 api 服务器 - ip 白名单,不能给你 URL 来测试)。这排除了未加载 https 模块和其他初始设置错误。

我已经测试了多个 PHP 安装,全部在 v5.3.3、32 位、Debian 32 位。

该请求适用于 cURL,但前提是设置 curl_setopt($curl,
CURLOPT_SSL_VERIFYPEER, 0);
.但是,在 file_get_contents 的上下文中设置 verify_peer"=>false 似乎没有任何区别。

使用 file_get_contents,完全相同的请求(相同的 URL,相同的 XML POST 数据)因 SSL: Connection reset by peer 而失败:

$arrContextOptions=array(
"http" => array(
"method" => "POST",
"header" =>
"Content-Type: application/xml; charset=utf-8;\r\n".
"Connection: close\r\n",
"ignore_errors" => true,
"timeout" => (float)30.0,
"content" => $strRequestXML,
),
"ssl"=>array(
"allow_self_signed"=>true,
"verify_peer"=>false,
),
);

file_get_contents("https://somedomain:2000/abc/", false, stream_context_create($arrContextOptions));

.

有人用 file_get_contents 遇到过这个问题吗? 有什么调试方法吗?

最佳答案

您错过了 verify_peer_name。如果您也将其设置为 false,则请求有效:

$arrContextOptions=array(
"http" => array(
"method" => "POST",
"header" =>
"Content-Type: application/xml; charset=utf-8;\r\n".
"Connection: close\r\n",
"ignore_errors" => true,
"timeout" => (float)30.0,
"content" => $strRequestXML,
),
"ssl"=>array(
"allow_self_signed"=>true,
"verify_peer"=>false,
"verify_peer_name"=>false,
),
);

file_get_contents("https://somedomain:2000/abc/", false, stream_context_create($arrContextOptions));

关于php - file_get_contents 忽略 verify_peer=>false?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15076819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com