Php 在某些https URL上尝试时,fopen返回false

Php 在某些https URL上尝试时,fopen返回false,php,ssl,https,http-status-code-400,Php,Ssl,Https,Http Status Code 400,下面的代码在某些https URL上返回false,但在使用http URL时效果良好。urlhttps://www.google.com/将返回true,而例如代码中使用的url将返回false PHP配置: 启用openssl:是 http包装器:是的 https包装器:是的 PHP代码: $proxySettings = array( "http" => array( "proxy" => "tcp://example.proxy",

下面的代码在某些https URL上返回false,但在使用http URL时效果良好。url
https://www.google.com/
将返回true,而例如代码中使用的url将返回false

PHP配置:

  • 启用openssl:是
  • http包装器:是的
  • https包装器:是的
PHP代码:

$proxySettings  = array(
    "http" => array(
        "proxy" => "tcp://example.proxy",
        "request_fulluri" => TRUE,
        "timeout" => 3.0,
        "protocol_version" => 1.0
    )
);
$context = stream_context_create($proxySettings);
$fp_ssl  = fopen("https://any-sms.biz/", "r", FALSE, $context);
这是我在使用无法工作的https URL时遇到的错误

警告:fopen():无法打开流:HTTP请求失败!HTTP/1.1400错误请求

如何在任何https url上使用fopen?我的错误在哪里


谢谢你

openssl s_客户端-连接任何短信。biz:443-tls1-servername任何短信。biz
工作正常,
echo-e“GET/HTTP/1.1\r\nHOST:any sms.biz\r\n\r\n”| openssl s_客户端-连接任何短信。biz:443-tls1-servername任何短信。biz
。我猜您的代理配置错误或已损坏。另请注意:
任何sms.biz
似乎都不支持TLS 1.2(
-tls1_2
选项)。HTTP是一种更高级别的协议。如果您获得HTTP 400,则表示已建立ssl/tls连接。使用cUrl时,状态代码为200,而“ssl\U verify-result”为0。因此,这种联系似乎确实已经建立起来了。但是为什么fopen失败了?
openssl s_客户端-连接任何sms。biz:443-tls1-servername任何sms。biz
工作正常,
echo-e“GET/HTTP/1.1\r\nHOST:any sms.biz\r\n\r\n”| openssl s_客户端-连接任何sms。biz:443-tls1-servername任何sms.biz
。我猜您的代理配置错误或已损坏。另请注意:
任何sms.biz
似乎都不支持TLS 1.2(
-tls1_2
选项)。HTTP是一种更高级别的协议。如果您获得HTTP 400,则表示已建立ssl/tls连接。使用cUrl时,状态代码为200,而“ssl\U verify-result”为0。因此,这种联系似乎确实已经建立起来了。但为什么fopen会失败?