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

不使用Express时如何查看request库发起请求的请求头

非Express场景下获取request库请求头的方法

你之前检索到的Express相关方案,针对的是Express服务端接收客户端请求时,读取入站请求头的场景;你现在是用request库作为HTTP客户端发起出站请求,查看自身发出的请求头完全不需要依赖任何Web框架,直接从回调参数中就能拿到。


核心实现逻辑

request库发起请求后的回调中,第二个参数res是服务端返回的响应对象,该对象挂载的request属性对应当前实际发起的请求实例,其上的headers字段就是最终发送到服务端的完整请求头——既包含你手动配置的头字段,也包含request库自动补全的默认头(比如User-Agent、Host、Connection等)。

修改后的示例代码如下:

const request = require('request');
function getDegree(cityURL){
  request.get({ 
      url: cityURL
    }, (err, res, body)=>{
      if (err) {
        console.log(err);
        return
      }
      // 直接读取实际发出的完整请求头
      const requestHeader = res.request.headers;
      // 打印请求头即可
      console.log(requestHeader);

      // 你的常规业务代码
      // console.log(temps); 
  })
}

补充调试技巧

  • 不要在发起请求前读取你传入request配置项里的headers字段,那里只会保留你手动设置的头内容,没有库自动填充的默认字段,不是最终实际发送的完整请求头。
  • 如果需要批量调试所有request请求的报文(不止单个请求的头),不需要在每个请求回调里加打印逻辑,启动脚本时带上环境变量即可:
NODE_DEBUG=request node 你的脚本文件名.js

运行后控制台会自动输出所有request请求的完整信息,包含请求行、请求头、响应头、响应报文等内容,适合全局排查问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 19:42:25