У меня есть успешный скрипт в 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;
Как вы можете видеть, я установить имя пользователя, пароль и печенье для страницы (как я в скрипте Node.js), однако указанная ошибка возникает.
Я хотел бы добавить, что я открыт для использования cURL
, если это лучшее решение.
Может быть, я помню мои данные неправильно, но в базовой HTTP-авторизации, печенье Арен 't отправлено, так что не было бы конкатенации в base64 ': $ cookie' –
@BrandonAnzaldi. Будет ли использовать' cURL' лучшее решение для этого? –