You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用chrome-php获取URL的响应头?

使用chrome-php获取请求响应头的实现方法

你可以通过两种方式在chrome-php中获取请求响应头:

方法一:获取页面导航的主响应头

直接通过navigate()方法返回的导航对象获取对应响应,再读取响应头:

$browserFactory = new BrowserFactory('chromium-browser');

// 启动无头Chrome
$browser = $browserFactory->createBrowser([
    'noSandbox' => true,
    'debugLogger' => 'php://stdout',
]);

try {
    $page = $browser->createPage();
    // 导航并等待完成,获取响应对象
    $navigation = $page->navigate($url)->waitForNavigation();
    $response = $navigation->getResponse();
    
    // 获取响应头
    $responseHeaders = $response->getHeaders();
    info('页面响应头:', $responseHeaders);
    
    info([$page->getHtml()]);
} finally {
    $browser->close();
}

方法二:监听所有请求的响应事件

如果需要捕获页面所有请求(包括资源加载)的响应头,可以监听页面的response事件:

$browserFactory = new BrowserFactory('chromium-browser');

$browser = $browserFactory->createBrowser([
    'noSandbox' => true,
    'debugLogger' => 'php://stdout',
]);

try {
    $page = $browser->createPage();
    
    // 监听响应事件
    $page->on('response', function (\HeadlessChromium\Response $response) {
        // 可根据需求过滤请求,比如只处理主文档请求
        if ($response->getRequest()->isNavigationRequest()) {
            $headers = $response->getHeaders();
            info('主文档响应头:', $headers);
        }
        // 去掉上面的判断即可获取所有请求的响应头
    });
    
    $page->navigate($url)->waitForNavigation();
    info([$page->getHtml()]);
} finally {
    $browser->close();
}

关键说明

  • getHeaders()方法返回关联数组,键为响应头名称,值为对应内容(部分头如Set-Cookie会以数组形式返回)
  • 若要获取特定响应头,可直接通过数组索引访问,比如$responseHeaders['Content-Type']

内容的提问来源于stack exchange,提问作者Sourav Chakraborty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 04:20:21