Node.js请求 - 打印整个HTTP请求(原始)的POST。

6
我正在使用Node.js中的request库调用Google的文本转语音API。我希望像这个Python示例一样打印出请求内容。
以下是我的代码:
const request = require('request');


const headers = {headers: {'input': {'text':'I want to say this'}, 'voice':{  'languageCode' : 'en-US'},'audioConfig':{'audioEncoding': 'MP3'}}}

request.post('https://texttospeech.googleapis.com/v1beta1/text:synthesize?key=API_KEY',headers, (error, res, body) => {
  if (error) {
    console.error(error)
    return
  }
  console.log(`statusCode: ${res.statusCode}`)
  console.log(body)
})
3个回答

4

最简单的方法是在任何端口上启动netcat服务器:

$ nc -l -p 8080

并将URL更改为localhost:

https://localhost:8080/v1beta1/text:synthesize?key=API_KEY

显然,您无法看到响应,但是整个原始请求数据将可供您在运行netcat的终端中检查。

0
在NodeJS中:
const http = require('http');

const server = http.createServer((req, res) => {
  const { rawHeaders, httpVersion, method, socket, url } = req;
  const { remoteAddress, remoteFamily } = socket;
  const data = JSON.stringify({
      timestamp: Date.now(),
      rawHeaders,
      httpVersion,
      method,
      remoteAddress,
      remoteFamily,
      url
    });

  console.info('---------------');
  console.info(data);
  res.end(data);
});

console.info('App started');
server.listen(3000);

-1

这里有文档链接

至少有三种方法可以调试请求的操作:

  1. 像这样启动节点进程:NODE_DEBUG=request node script.jslibrequestotherlib也可以)。

  2. 随时设置require('request').debug = true(这与#1相同)。

  3. 使用request-debug模块查看请求和响应头和正文。


3
这是不正确的。require('request').debug = true 不会生成原始的HTTP请求,只是进行一些漂亮的打印输出。 - El Sampsa
@ElSampsa 我正在展示所有记录的调试选项。后者(第三个)解释说它可以用于“查看请求和响应头和正文”。 - robertklep

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接