无法将 "request" 库与 headers 一起使用

Unable to use "request" library with headers

使用 Chrome 开发工具我可以看到所有的请求。我想使用脚本复制其中一个。该请求是可复制的,因为它可以从开发工具中重播。我正在使用此代码:

let request = require("request");
request.put("<hidden>", {
    "headers": {
        ":authority": "<hidden>",
        ":method": "PUT",
        ":path": "/api/<hidden>",
        ":scheme": "https",
        "accept": "*/*",
        "accept-encoding": "gzip, deflate, br",
        "accept-language": "en-US",
        "authorization": "<hidden>",
        "content-length": "0",
        // and more
    }
}, (err, response, body) => {
    console.log(err);
    console.log(response.statusCode);
    console.log(body);
});

控制台显示:

TypeError [ERR_INVALID_HTTP_TOKEN]: Header name must be a valid HTTP token [":authority"]
    at ClientRequest.setHeader (_http_outgoing.js:487:3)
    at new ClientRequest (_http_client.js:221:14)
    at Object.request (https.js:309:10)
    at Object.request (C:\Users\Admin\AppData\Roaming\npm\node_modules\puppeteer-core\node_modules\agent-base\patch-core.js:25:22)
    at Request.start (C:\Users\Admin\AppData\Roaming\npm\node_modules\request\request.js:751:32)
    at Request.end (C:\Users\Admin\AppData\Roaming\npm\node_modules\request\request.js:1505:10)
    at end (C:\Users\Admin\AppData\Roaming\npm\node_modules\request\request.js:564:14)
    at Immediate._onImmediate (C:\Users\Admin\AppData\Roaming\npm\node_modules\request\request.js:578:7)
    at processImmediate (internal/timers.js:439:21) {
  code: 'ERR_INVALID_HTTP_TOKEN'
}

我尝试不使用 .put(),或指定 methodbody 属性。相同的结果。

Headers 以冒号开头的是 "pseudo-headers"。您实际上并没有使用 request() 库自己发送它们,因为它们是非法的 http 1.1 header 格式。

您可以在此处阅读有关它们的信息:Purpose of pseudo colon-header fields

您应该能够删除所有 pseudo-headers 并确保其中的信息在您的请求(url、方法等)中的其他地方正确指定,他们通常已经是。