axios手动设置Content-Length,nodeJS

Shm*_*uer 2 http-content-length content-length node.js axios

有没有办法在nodeJS中发送post请求并指定内容长度。

我尝试过(使用 axios):

let data = `Some text data...........`;

let form = await Axios.post(
    "url.......",
    data,
    {
        headers: {
            Authentication: "token.....",
            "Content-Type": "multipart/form-data; boundary=c9236fb18bed42c49590f58f8cc327e3",
            //set content-length manually 
            "Content-Length": "268"
        }
    }
).catch(e => e);
Run Code Online (Sandbox Code Playgroud)

它不起作用,长度会自动设置为我传递的值以外的值。

我正在使用 axios,但愿意使用任何其他方式从 nodeJS 发布。

Daw*_*ota 5

由于声誉较低,我无法添加评论,但桑迪普·帕特尔的部分答案Axios已经过时。您可以Content-Length手动设置。如果标头存在,则Axios不会覆盖:Content-Lengthcontent-length

// Add Content-Length header if data exists
  if (!headerNames['content-length']) {
    headers['Content-Length'] = data.length;
  }
Run Code Online (Sandbox Code Playgroud)

来源: https: //github.com/axios/axios/blob/main/lib/adapters/http.js#L209-L213

所以在你的情况下它将是:

let data = `Some text data...`;

let form = await Axios.post(
    "url...",
    data,
    {
        headers: {
            Authentication: "token....",
            "Content-Type": "contentType...",
            //set content-length manually 
            "Content-Length": "268",
            "content-length": "268"
        }
    }
).catch(e => e);
Run Code Online (Sandbox Code Playgroud)