我是PHP的新手,但我之前使用过很多JSP(我有很多信息),Java类的一切都比较容易。 所以,现在,我想在HTTPS页面(而不是HTTP)上执行POST请求,并且需要返回cookie并将其传递给另一个GET请求并返回最终结果。目标是通过绕过登录页面并直接转到也在ajax用户界面中提供的页面,使移动电话的页面更加兼容以便在移动浏览器中查看。 我被卡住了,我的代码不起作用,它说它是Bad Request。
错误请求
您的浏览器发送了此请求 服务器无法理解。原因: 你说的是一个普通的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;
?>
答案 0 :(得分:0)
从过去的经验来看,我从来没有使用像fsocketopen()
这样的PHP内部函数进行外部数据发布。执行这些操作的最佳方法是使用CURL,这使得开发人员可以更轻松地使用它,并且功能更强大。
然后查看带有URL,POST,POSTDATA和COOKIESFILES的那个,这是用于.JAR的,然后您可以检索它,并且可以使用file_get_contents()
使用GET发送数据。