request库允许我使用良好的JSON风格语法构造HTTP请求。
request.post(
{
url: 'https://my.own.service/api/route',
formData: {
firstName: 'John',
lastName: 'Smith'
}
},
(err, response, body) => {
console.log(body)
}
);
但要进行故障排除,我确实需要看到雷格斯特的HTTP消息正文,因为它会出现在电线上。理想情况下,我正在寻找带有node.js
Buffer
对象的原始字节表示。对于响应而不是请求似乎很容易。我对multipart/form-data
。 我已经浏览了文档和github问题,无法弄清楚。简单的方法是在任何端口上启动NetCat服务器:
$ nc -l -p 8080
https://localhost:8080/v1beta1/text:synthesize?key=API_KEY
现在,提出的任何请求都将打印整个已发送到Localhost Server的原始HTTP消息。明显地,您将无法看到响应,但是整个原始请求数据都可以供您在终端中进行检查。
我想出了如何用请求倾倒HTTP消息主体。在这两种情况下,我都只是复制了使用internally的相同方法。
Multipart形式上传
request
创建或使用代理(例如NGINX),该代理可以在将其转发到最终目的地并将请求发送到代理之前,然后将其转发到确切的传入请求。
通过在调试器中发送请求,以确切查看其写入套接字的内容(这可能很耗时,尤其是在异步回调的情况下,但最终将起作用)。您可以尝试 @jfriend00建议使用网络嗅探器,例如Wireshark,但是当您获取
require('request').debug = true
URL时,这可能不是最简单的路线,因为它需要一些设置来拦截TLS Connections。
因此,也许可以为请求模块本身打开调试模式,您可以通过简单地设置https
HERHE的专用调试模块,该模块可让您查看请求和响应标头和身体。