【发布时间】:2011-04-01 10:40:18
【问题描述】:
我对 PHP 有点陌生,但是我以前经常使用 JSP(我有很多信息)并且使用 Java 类一切都变得更容易。 所以,现在,我想在 HTTPS 页面(不是 HTTP)上执行 POST 请求,需要获取返回的 cookie 并将其传递给另一个 GET 请求并返回最终结果。目的是通过绕过登录页面并直接进入同样在 ajax 用户界面中提供的页面,使手机的重型页面更兼容在移动浏览器中查看。 我卡住了,我的代码不起作用,它说是错误请求。
错误请求
您的浏览器发送了一个请求 服务器无法理解。原因: 你说的是普通的 HTTP 启用 SSL 的服务器端口。而是使用 访问此 URL 的 HTTPS 方案, 请。
<?php
$content = '';
$flag = false;
$post_query = 'SOME QUERY'; // name-value pairs
$post_query = urlencode($post_query) . "\r\n";
$host = 'HOST';
$path = 'PATH';
$fp = fsockopen($host, '443');
if ($fp) {
fputs($fp, "POST $path HTTP/1.0\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Content-length: ". strlen($post_query) ."\r\n\r\n");
fputs($fp, $post_query);
while (!feof($fp)) {
$line = fgets($fp, 10240);
if ($flag) {
$content .= $line;
} else {
$headers .= $line;
if (strlen(trim($line)) == 0) {
$flag = true;
}
}
}
fclose($fp);
}
echo $headers;
echo $content;
?>
【问题讨论】:
-
$host 设置为什么?您需要确保该变量以 https:\\ 开头。很可能,它只是普通的 http:\\
-
在C:\xampp\htdocs\1\dene.php 在第 8 行,它说。我得到了 OpenSSL 的配置和工作。还有什么意思吗?