我想在laravel应用程序中获取(curl)另一个页面的html内容。
经典方法是:
$client = new Client();
$client = $client->request('GET', route('print.page'))->getBody();
问题是,所有这些路由均受auth保护,我只能从登录页面获取html。
我尝试再次发送登录槽口,但是我认为双重登录不是一个好主意。
是否有更好的方法从受保护的路由中获取html?
答案 0 :(得分:0)
如果您在控制器内调用它,并且您拥有当前经过身份验证的用户,则必须获取会话名称和真实会话ID:
public function FooController()
{
$name = Session::getName();
$sessionId = $_COOKIE[$name];
$cookieJar = CookieJar::fromArray([
$name => $sessionId,
], 'example.com');
$client = new Client();
$body = $client->request( // changed the variable from $client to $body here
'GET',
route('print.page'),
['cookies' => $cookieJar]
)->getBody();
}