Php 在某些https URL上尝试时,fopen返回false
下面的代码在某些https URL上返回false,但在使用http URL时效果良好。urlPhp 在某些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://www.google.com/
将返回true,而例如代码中使用的url将返回false
PHP配置:
- 启用openssl:是
- http包装器:是的
- https包装器:是的
$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会失败?