【问题标题】:HTTPS Post Request via PHP and Cookies通过 PHP 和 Cookie 的 HTTPS 发布请求
【发布时间】: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 的配置和工作。还有什么意思吗?

标签: php post cookies https


【解决方案1】:

从过去的经验来看,我从来没有使用过像fsocketopen() 这样的PHP 内部函数来发布外部数据。执行这些操作的最佳方式是使用 CURL,它提供了更多的便利,并且对开发人员来说更强大。

例如,看看这些函数 http://php.net/curl_setopt

查看用于 .JAR 的带有 URL、POST、POSTDATA 和 COOKIESFILES 的文件,然后检索它,您可以使用 file_get_contents() 使用 GET 发送数据。

【讨论】:

  • 我很困惑,它是 set_opt 表示设置选项,我怎样才能得到返回的 cookie?我看了几个例子,想不通。
猜你喜欢
  • 2012-05-01
  • 2017-11-21
  • 1970-01-01
  • 2015-06-24
  • 2011-08-17
  • 2011-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多