加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

React Native Android Fetch在连接到本地API时失败

发布时间:2020-12-15 20:53:58 所属栏目:百科 来源:网络整理
导读:我在我的react-native Android应用程序中使用fetch API来向本地API发出请求.我通常在 http://localhost:8163处从反应网络应用程序查询所述API. 我正在调试器模式下在我的物理设备上测试我的应用程序.我读到某个地方反应本机不能像web应用一样查询localhost.
我在我的react-native Android应用程序中使用fetch API来向本地API发出请求.我通常在 http://localhost:8163处从反应网络应用程序查询所述API.

我正在调试器模式下在我的物理设备上测试我的应用程序.我读到某个地方反应本机不能像web应用一样查询localhost.显然你必须使用http://10.0.2.2:[PORT_NUMBER_HERE]/这是根据Android模拟器底座的`http://127.0.0.1:[PORT_NUMBER_HERE]的别名.我不确定这是否是我应该在物理设备上进行测试的.

我的获取代码如下所示:

fetchToken() {
    fetch('http://10.0.2.2:8163/extension/auth',{
        method: 'GET',headers: {
            'Accept': 'application/json','Content-type': 'application/json'
        }
    })
    .then((response)) => console.log('successful fetchToken response: ',response.json()))
    .catch((error) => console.log('fetchToken error: ',error))
    .done();
}

请求总是挂起一段时间然后到达catch块并且无效错误TypeError:网络请求失败(…).检查我的本地API的日志,他们根本不会注册请求.

所以我不知道我是否正确查询我的本地API以获取我想要的资源,如果我是,我不知道为什么获取失败.

您无法访问本地开发服务器,因为该端口尚未由ADB转发.当您运行react-native run-android时,React Native将端口8081映射到USB上的移动设备.当您断开USB连接时,您将无法再刷新或热重新加载代码.所以在这种情况下你可以做两件事,就像React Native那样映射你的本地服务器端口,或者使用你的本地IP地址.

>映射端口

这仅适用于使用Android 6.0的情况.要使用ADB转发端口,请在终端中运行以下命令:

adb reverse tcp:8163 tcp:8163

这会将您的本地8163端口映射到移动设备的8163端口.您将能够以这种方式访问??您的开发服务器.
>使用本地IP地址

您还可以在React Native开发应用程序上使用本地IP,无需USB即可重新加载它们.摇动设备或长按菜单按钮打开开发人员菜单.打开开发设置,然后点击调试服务器主机&设备端口.在这里,您可以输入机器的本地IP,端口号为8081.如果你的机器的IP是192.168.1.100,那么你在这里输入192.168.1.100:8081以便成功连接.现在我们已经介绍了我们可以重新加载应用程序.在此之后,当您要使用本地计算机的开发服务器时,请使用与服务器端口号相同的IP.

你应该好好接受这个.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读