gpt4 book ai didi

javascript - 从需要授权的页面获取内容

转载 作者:搜寻专家 更新时间:2023-10-31 21:25:30 24 4
gpt4 key购买 nike

我在 Node.js 中有一个成功的脚本,它通过模仿登录过程设法从需要授权的页面获取内容。

我现在需要使用 PHP 从网页获取内容,目的略有不同,并尝试将脚本从 Javascript“转换”为 PHP,但是,它不起作用。

有人可以帮我将代码从 Javascript 切换到 PHP,或者让我知道我当前的代码有什么问题吗?

Javascript Node.js 授权

var request = require("request");
var j = request.jar();
var cookie = request.cookie('entercookie');

j.setCookie(cookie, 'http://www.example.com');
var request = request.defaults({jar: j});

request.post('https://www.example.com/login', {username: 'username', password: 'password'}, function(err, res, body) {
makeRequest(100);
});

PHP授权

$homepage = 'http://example.com';

$postData = http_build_query(
array(
'username' => 'username',
'password' => 'password'
)
);
$cookie = 'cookie';

$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded\r\n
Cookie: '.$cookie,
'content' => $postData
)
));
$data = file_get_contents($homepage, false, $context);

echo $data;

如您所见,我已经为该页面设置了用户名、密码和 cookie(就像我在 Node.js 脚本中所做的那样),但是出现了指定的错误。

我想补充一点,如果它是更好的解决方案,我愿意使用 cURL

最佳答案

您的问题是,在您的 JavaScript 代码中,您正在使用用户名和密码执行 POST 请求。

在您的 PHP 代码上,您正在使用基本身份验证执行 GET 请求,将您的 PHP 代码更改为如下内容:

$homepage = 'http://authorizationpage.com';

$postData = http_build_query(
array(
'username' => 'username',
'password' => 'password'
)
);
$cookie = 'cookie';

$context = stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded\r\n
Cookie: '.$cookie,
'content' => $postData
)
));
$data = file_get_contents($homepage, false, $context);

echo $data;

关于javascript - 从需要授权的页面获取内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37121495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com