node.js - Axios 手动设置 Content-Length,nodeJS

标签 node.js axios content-length http-content-length

有没有办法在 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);

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

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

最佳答案

由于信誉不佳,我无法添加评论,但 Sandeep Patel 关于 Axios 的部分回答已过时。您可以手动设置 Content-Length。如果存在 content-length header ,Axios 将不会覆盖 Content-Length:

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

来源: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);

关于node.js - Axios 手动设置 Content-Length,nodeJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59954053/

相关文章:

IIS7 - 在 ASP 中指定内容长度 header 会导致 "connection reset"错误

node.js - 什么样的驱动程序用于将 Node.js 应用程序连接到数据库?

vue.js - Vue 可以设置 process.env.NODE_ENV

javascript - 我应该如何处理许多嵌套匿名函数中的范围?

javascript - 使用 ReactJS 发布表单时出现网络错误

node.js - ReactJS + Axios + NodeJS - _id : Cannot read property 'ownerDocument' of null

PHP 内容长度 header 延迟加载

android - HttpPost + setEntity : how to know content-length?

javascript - 使用电子邮件或用户名的 Node.js Passport 策略登录

node.js - Bluebird - promisification - promisifyAll of 'email-templates' Node 模块 - 发送邮件