【问题标题】:TypeError: Network request failed (using ReactNative and Django)TypeError:网络请求失败(使用 ReactNative 和 Django)
【发布时间】:2022-01-14 21:52:32
【问题描述】:

我正在使用 React Native 开发一个移动应用程序,并且在后端有一个 Django 中的 REST API。我想从应用向我的 API 发出 POST 请求。

代码

function sendDpi() {
const requestOptions = {
  method: 'POST',
  headers: {
    Accept: 'application/json',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    dpi: imageDpi,
  }),
};
fetch('http://127.0.0.1:8000/', requestOptions)
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => {
    console.log(error);
  });
}

当我的应用程序调用sendDpi() 时,我得到[TypeError: Network request failed]
127.0.0.1:8000 是我的 Django 应用程序运行的地方。我也尝试过使用我的 IP 地址(正如this 回答所指出的那样)。
我还修改了android/app/src/main/AndroidManifest.xml 以包含android:usesCleartextTraffic="true"

【问题讨论】:

    标签: android django react-native fetch-api


    【解决方案1】:

    之前的建议很好,只是所需的 URL 应该是 http://10.0.2.2:8000 而不是 http://10.0.2.2/8000

    【讨论】:

      【解决方案2】:

      我认为127.0.0.1:8000 也是本地主机。如果您使用物理设备进行测试,则需要找到您的外部 IP 地址。

      你在安卓模拟器上测试你可以使用http://10.0.2.2/8000

      还可以先尝试使其与 http 一起使用。您可能没有有效的 SSL 证书。如果 SSL 证书无效,您还会得到 [TypeError: Network request failed]

      【讨论】:

      • 当我使用 10.0.2.2/8000 或我的外部 IP 地址时,我得到了同样的错误。您所说的“首先使用 HTTP”是什么意思?
      • 如果您的 Django 应用程序服务于“https://”并且您没有有效的 ssl 证书,那么您将收到错误消息。 Django 应用程序可以用作“http://”吗?
      • 是的,它可以作为'http://'
      • @protonpasta 你还有问题吗?会不会是防火墙问题?您可以尝试通过 ngrok 为您的 django 应用程序提供服务:twilio.com/blog/…
      猜你喜欢
      • 2020-01-09
      • 2018-06-11
      • 2022-01-12
      • 2020-04-09
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多