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

React-Native中Axios向Cloudinary发POST请求Android端报网络错误

解决React Native Android端Axios上传Cloudinary报Network Error的问题

Hey,我之前也遇到过几乎一模一样的情况!iOS端正常上传,Android却持续报Network Error,折腾了好几天才找到根源,给你几个针对性的解决方向:


1. 核心问题:修正Content-Type配置

这是最可能导致失败的原因!当使用FormData上传文件时,绝对不要手动设置Content-Type: application/x-www-form-urlencoded:

  • Axios会自动识别FormData,并生成正确的multipart/form-data请求头,同时自动添加必要的boundary分隔符
  • 手动设置错误的Content-Type会让Android端的请求格式完全混乱,Cloudinary无法解析,直接触发网络错误

修改后的请求代码:

var photo = { uri: image.sourceURL, type: image.mime, name: image.filename };
var formData = new FormData();
formData.append('file', photo);
formData.append('upload_preset', 'abcde');

axios({
  url: 'https://api.cloudinary.com/v1_1/abcde/upload',
  method: 'POST',
  // 移除手动设置的Content-Type,让Axios自动处理
  data: formData
}).then(function(response) {
  console.log('上传成功:', response);
}).catch((error) => {
  console.error('上传失败:', error);
});

2. 检查Android端的图片URI格式

Android对文件URI的格式要求比iOS严格得多,你必须确保image.sourceURL是标准的file://开头的路径:

  • 如果是用react-native-image-picker获取图片,确认开启了mediaType: 'photo',并直接使用返回的uri字段(通常已经是file://格式)
  • 如果遇到content://开头的URI(比如某些系统相册的图片),可以用react-native-fs库转换为真实文件路径:
import RNFS from 'react-native-fs';

// 转换content:// URI为file路径
const fileStats = await RNFS.stat(image.sourceURL);
const filePath = fileStats.path;
const photo = { uri: `file://${filePath}`, type: image.mime, name: image.filename };

3. 升级Axios版本

你使用的Axios 0.18.0是非常老旧的版本,存在不少Android端的网络请求兼容性bug(尤其是FormData处理方面)。建议直接升级到最新稳定版:

# npm方式
npm install axios@latest
# yarn方式
yarn add axios@latest

4. 确认AndroidManifest的网络权限

虽然iOS正常,但还是要检查Android项目的android/app/src/main/AndroidManifest.xml里是否添加了网络权限:

<uses-permission android:name="android.permission.INTERNET" />

如果没有,添加后重新编译Android项目。


排查顺序建议

  1. 先移除手动设置的Content-Type,测试是否解决问题(这一步90%能搞定)
  2. 如果还是报错,检查URI是否为file://格式
  3. 升级Axios版本,排除旧版本的bug
  4. 最后确认网络权限是否存在

按照这个流程走,应该能快速解决你的Android端上传问题!

内容的提问来源于stack exchange,提问作者Vishal Kumar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:38:43