Laravel 请求:获取请求的标头信息
问题
如何在控制器中获取请求标头的信息,比如如何获得标头中的 Referer
、User-Agent
信息?
回答
可通过调用 Illuminate\Http\Request
实例的 header
方法获得请求标头的信息:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class TestController extends Controller
{
public function index(Request $request)
{
$referer = $request->header('Referer');
$acceptLanguage = $request->header('Accept-Language');
$userAgent = $request->header('User-Agent');
return [
'Referer' => $referer,
'Accept-Language' => $acceptLanguage,
'User-Agent' => $userAgent
];
}
}
返回结果类似如下:
{
"Referer": null,
"Accept-Language": "zh-CN,zh;q=0.9",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
}
注意:如果请求标头中不包含指定项,则返回 null
。标头项名是大小写不敏感的。