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

Javascript 从需要授权的页面获取内容,javascript,php,node.js,file-get-contents,roblox,Javascript,Php,Node.js,File Get Contents,Roblox,我在Node.js中有一个成功的脚本,它通过模拟登录过程,从需要授权的页面获取内容 我现在需要使用PHP从网页中获取内容,目的稍有不同,并且尝试将脚本从Javascript“转换”为PHP,但是,它不起作用 有人能帮我把代码从Javascript切换到PHP,或者让我知道我当前的代码有什么问题吗 Javascript Node.js授权 var request = require("request"); var j = request.jar(); var cookie = request.co

我在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);
});
$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;
PHP授权

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);
});
$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 scrpt中所做的那样),但是出现了指定的错误


我想补充一点,如果这是一个更好的解决方案,我愿意使用
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;

六羟甲基三聚氰胺六甲醚。。。我似乎收到了错误
注意:file\u get\u contents():未指定内容类型假定应用程序/x-www-form-urlencoded
警告:file\u get\u contents(http://authorizationpage.com):无法打开流:HTTP请求失败!HTTP/1.1 403令牌验证失败
如果我向您提供需要授权的页面的URL会更容易吗?@bobjomes我将内容添加到标题以删除通知,至于警告,您的网站似乎请求令牌并向您提供403我调整了代码(使用更新的答案)而
通知
现在已经消失,但另一个
警告
仍然存在。有没有一个原因可以解释为什么它在Node.js中工作而在PHP中不工作?@bobjomes我猜cookie可能有问题,你能告诉我吗?也许我记错了我的规范,但在HTTP基本授权中,cookie不会被发送,所以在
:$cookie
@BrandonAnzaldi的base64中不会有连接,使用
cURL
会是更好的解决方案吗?