HarmonyOS 鸿蒙Next axios发出的请求没有Content-Length的header

发布于 1周前 作者 wuwangju 来自 鸿蒙OS

HarmonyOS 鸿蒙Next axios发出的请求没有Content-Length的header

axios.request发出的请求没有Content-Length,导致服务端返回411错误
 

2 回复

post请求未携带请求体,可以尝试手动设置Content-Length

参考代码如下:
 

Button("Axios411").onClick(() => {

        hilog.info(DOMAIN, TAG, 'Axios411');

        axios.request<string, AxiosResponse<string, Student>>({

          url: "http://10.45.198.49:3000",

          method: "POST",

          headers: {

            "Content-Length": 0

          },

          data: {

            name: "zhang san",

          }

        }).then(() => {

          console.log("123")

        })

      })

更多关于HarmonyOS 鸿蒙Next axios发出的请求没有Content-Length的header的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙系统中,若使用axios发出的请求缺少Content-Length的header,这通常与axios的默认配置或请求数据格式有关。

axios默认不会手动设置Content-Length,因为这个header通常由浏览器或Node.js环境根据请求体的内容自动计算并添加。如果请求体为空或请求方法为GET(不包含请求体),则不会出现Content-Length header。

若确实需要在POST或PUT请求中手动设置Content-Length,可以尝试以下步骤:

  1. 确认请求数据是否为空或未正确设置。
  2. 检查axios配置,确认是否使用了如transformRequest等配置影响了请求体的处理。
  3. 如果请求数据是JSON格式,axios会默认将其转换为字符串。确保转换后的字符串长度被正确计算。

在HarmonyOS鸿蒙的特定环境下,如果axios的行为与预期不符,可能是因为环境对axios的默认行为有所修改。此时,可以尝试直接修改axios的请求配置,或使用其他HTTP库如fetch进行请求,看是否能正确添加Content-Length header。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部