如何在webstorm中记录来自节点的OUTGOING https请求

Dan*_*Eli 15 https node.js webstorm

我正在攻击一些调用外部Web服务的node.js代码并且我得到了不好的结果.我想记录原始请求和响应,以便我可以检查它.

事情就是这样: 我没有直接使用http库,我通过OAuth库消费它.

我已经在oauth库代码中添加了调试语句,我不喜欢它.现在看起来我将不得不进入http库并开始搞乱它?这可能不正确.

如果我在窗户上,我会开玩笑.朋友提到wireshark但wireshark告诉我必须安装X11.真?我不会那个兔子洞.

然后我尝试了node-inspector,但我认为这是服务器代码而不是客户端代码.它表示您希望在连接之前启动节点进程.好吧,我的节点进程是一个测试用例(誓言),在开始后不久就结束了...所以那里没有运气.

我想这对任何筹码都很难,但jeez,它让我想念.net!

那么,当使用node.js作为山狮外部Web服务的客户端时,如何检查线路上的内容?

谢谢!担

uir*_*ron 24

由于同样的原因,管理安装钩子http/ https请求.

function requestLogger(httpModule){
    var original = httpModule.request
    httpModule.request = function(options, callback){
      console.log(options.href||options.proto+"://"+options.host+options.path, options.method)
      return original(options, callback)
    }
}

requestLogger(require('http'))
requestLogger(require('https'))
Run Code Online (Sandbox Code Playgroud)

  • 请注意,使用此方法将为https请求记录两次,因为https.request()只委托给http.request().只需将日志记录添加到"http",并通过测试是否存在"options._defaultAgent"(在"https.request()"中设置)来猜测协议. (2认同)

Joh*_*ann 7

您可以查看global-request-logger模块,该模块使用与@uiron相同的技术,但有更多详细信息.

  • 截至 2023 年,该库已被弃用,并且存储库似乎已被删除。 (3认同)