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

React Native调用POST API返回200但响应为空问题求助

问题排查与解决方案

兄弟,我看你这问题卡了挺久,先帮你梳理下核心问题,再给你两个可行的解决思路:

一、先修复当前base64请求的问题

你现在的代码有两个容易忽略的细节,直接导致了“请求200但看起来响应为空”的情况:

1. 请求体格式不对

你设置了Content-Type: application/json,但直接把base64字符串作为body传递,而绝大多数接受base64的API,都要求把编码内容放到JSON的指定字段里(比如image),不是直接传裸字符串。

2. 未解析实际响应内容

你打印的res是Fetch的响应对象,不是服务器返回的实际数据,必须调用res.json()或res.text()才能读取里面的内容。

修改后的base64请求代码:

recognise = (imageToRead) => {
  RNFetchBlob.fs.readFile(imageToRead, 'base64')
    .then((data) => {
      // 按API要求构造JSON请求体,这里假设API用`image`字段接收base64,具体看文档调整
      const requestBody = JSON.stringify({ image: data });
      return fetch('${url}', {
        method: "POST",
        headers: {
          'Accept': 'application/json',
          'Content-Type': 'application/json'
        },
        body: requestBody
      });
    })
    .then((res) => res.json()) // 解析实际响应内容
    .then((responseData) => {
      console.log('服务器返回的真实内容:', responseData);
    })
    .catch((err) => {
      console.log('请求或解析错误:', err);
    });
};

二、React Native下FormData上传方案(推荐,毕竟Node环境验证过可行)

既然API支持FormData上传,用这个方式更稳妥,还能避免base64编码的额外开销。你已经在用react-native-fetch-blob,直接用它实现即可:

recognise = (imageToRead) => {
  // 创建FormData对象,key要和Node测试代码里的`image`完全一致
  const formData = new FormData();
  formData.append('image', {
    uri: imageToRead,
    type: 'image/jpeg', // 根据你的图片类型调整,png就用image/png
    name: 'upload.jpg'
  });

  RNFetchBlob.fetch('POST', '${url}', {
    // 自动处理multipart/form-data的边界符,不用手动写
    'Content-Type': 'multipart/form-data',
  }, formData)
  .then((res) => res.json())
  .then((responseData) => {
    console.log('上传成功,响应内容:', responseData);
  })
  .catch((err) => {
    console.log('上传失败:', err);
  });
};

注意点:

  • iOS本地文件的uri就是你拿到的/var/mobile/...路径,不需要额外处理
  • type字段必须和实际图片格式匹配,否则API可能识别不了文件
  • FormData的key(这里是image)要和Node测试代码的key保持一致,API是靠这个key识别上传文件的

补充说明

你之前看到的响应对象里的_bodyBlob是Fetch的响应体容器,必须通过解析方法才能读取里面的内容,这也是你之前误以为“响应为空”的原因——你只是打印了响应的元数据,没触达实际内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 07:00:41