gpt4 book ai didi

ios - 真正的 IOS 设备不会发出网络请求 - React Native

转载 作者:行者123 更新时间:2023-12-05 07:39:35 24 4
gpt4 key购买 nike

我正在尝试让我的 React Native 应用程序在真实的 iPhone 上运行,这样我就可以开始将该应用程序与 branch.io 集成。出于某种原因,我无法让我的应用程序向我在 AWS 上的后端 api 发出网络请求。当我在本地开发环境中使用 localhost:3000/auth/login/访问后端 api 时,我的代码在模拟器中按预期工作。以下是我努力的结果。

HTTP 类发布方法:

post(endpoint, body, auth = null) {

console.log(this.apiUrl + endpoint);
console.log(this._headers(true));
console.log(body);

return Observable.defer(() => {
return Observable.fromPromise(fetch(this.apiUrl + endpoint, {
method: 'post',
headers: this._headers(auth),
body: JSON.stringify(body)
})
.then(this._checkStatus)
.then(res => res.json()));
});
}

_headers(auth) {
let token = (auth) ? token = Config.clientId : this.accessToken;
let headers = new Headers({
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + token
});

return headers;
}

在为我的 iOS 设备构建代码后,我尝试登录但没有任何反应。我在我的发布请求中添加了控制台调用,以确保传递了正确的值并且这似乎是正确的。以下是我在运行 Debug模式时尝试登录时看到的结果。我是 React Native 的新手,所以我不确定网络选项卡是否会检测到来自真实设备的请求,但是没有任何网络调用的迹象。

enter image description here

从 Postman 运行完全相同的调用按预期工作,如下所示:

enter image description here

如有任何帮助,我们将不胜感激。提前谢谢你。

最佳答案

因为您可能使用的是 HTTP 而不是 HTTPS,所以您需要启用 NSAppTransportSecurity 并将您的域添加到您的 info.plist 中的 NSExceptionDomains 列表中。

您可以通过打开 NSAllowsArbitraryLoads 完全禁用安全检查。然而,虽然对开发目的有用,但最好让您的开发环境更像您的发布或生产环境,从而最大限度地减少错误和回归。 (在生产中使用 NSAllowsArbitraryLoads 是有充分理由的,但如果你只是与一个后端对话,那么你不需要它。)

您可以了解 ATS 的设置 here (转到 ATS 配置基础知识)。

关于ios - 真正的 IOS 设备不会发出网络请求 - React Native,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47014858/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com