You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native安卓端Axios POST请求返回400错误求助

解决React Native安卓端Axios POST请求400 Bad Request问题

我之前也踩过一模一样的坑——Postman里请求顺风顺水,到了RN安卓模拟器/真机上就返回400,明明已经加了Content-Type: application/json还是没用。大概率是你的RN请求和Postman的请求细节有不一致的地方,咱们一步步排查:

1. 别重复序列化请求体

Axios默认会自动把JS对象序列化为JSON格式,同时自动设置Content-Type: application/json(就算你手动加了也没关系,但别画蛇添足)。如果你手动用JSON.stringify()处理了请求体,就会导致服务器收到的是字符串而非JSON对象,自然解析失败返回400。

❌ 错误写法:

axios.post('/api/xxx', JSON.stringify({ username: 'test', password: '123' }), {
  headers: { 'Content-Type': 'application/json' }
})

✅ 正确写法:

axios.post('/api/xxx', { username: 'test', password: '123' }, {
  headers: { 'Content-Type': 'application/json' }
})

2. 对齐Postman的请求头

Postman会自带一些默认请求头(比如User-Agent、Accept),有些服务器会校验这些字段,RN里Axios的默认头可能和Postman不一样。你可以打开Postman的「Headers」标签,把所有请求头都复制到Axios里试试:

axios.post('/api/xxx', yourData, {
  headers: {
    'Content-Type': 'application/json',
    'User-Agent': 'PostmanRuntime/7.32.3', // 替换成你Postman里的UA
    'Accept': '*/*',
    // 其他Postman里有的头都加上
  }
})

3. 打印完整请求日志,对比Postman

在Axios里加个请求拦截器,把发送的所有请求细节(头、体、URL)都打印出来,和Postman的「请求详情」对比,肯定能找到差异:

axios.interceptors.request.use(request => {
  console.log('完整请求信息:', JSON.stringify(request, null, 2));
  return request;
});

重点看:请求体的字段是不是全、字段类型有没有错(比如数字变成了字符串)、URL有没有拼写错误(比如RN里的baseURL配置错了)。

4. 检查安卓的明文HTTP限制(如果用的是HTTP)

如果你的服务器是HTTP而非HTTPS,安卓9及以上默认禁止明文HTTP请求,这时候可能会导致请求异常(虽然一般是连不上,但少数服务器会返回400)。解决方法是在android/app/src/main/AndroidManifest.xml的<application>标签里加:

android:usesCleartextTraffic="true"

5. 用原生Fetch测试排除Axios问题

如果上面的方法都没用,试试用RN原生的Fetch写个请求,看是不是同样返回400:

fetch('你的接口地址', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(yourData)
})
.then(res => res.json())
.then(data => console.log('Fetch返回:', data))
.catch(err => console.error('Fetch错误:', err))

如果Fetch能成功,那就是Axios的配置问题;如果也返回400,那问题就出在RN安卓的网络配置或者请求参数本身。

一般来说,只要把RN的请求和Postman的请求细节完全对齐,400问题就能解决~

内容的提问来源于stack exchange,提问作者Rodrigo Dagnese

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:46:29