我们正在尝试通过本地主机从react-native(版本0.59)连接到API(.net core 2.2),两者显然都在同一ip,不同的端口,react-native在端口8080上运行,并且api在44344上,问题发生在我们从react-native获取网址的那一刻
我们还测试了从Postman运行url的情况,即使从已安装INSIDE react-native iOS的浏览器进行了测试,也可以从安装的任何网络浏览器(safari / chrome)中正常进行。
任何在localhost外部运行的api都可以正常运行,是我们失败的localhost。
Network request failed.
onerror
whatwg-fetch.js:504:29
dispatchEvent
event-target.js:172:43
setReadyState
XMLHttpRequest.js:580:29
__didCompleteResponse
XMLHttpRequest.js:394:25
emit
EventEmitter.js:190:12
__callFunction
MessageQueue.js:366:47
<unknown>
MessageQueue.js:106:26
__guard
MessageQueue.js:314:10
callFunctionReturnFlushedQueue
MessageQueue.js:105:17
callFunctionReturnFlushedQueue
[native code]:0
获取api的部分代码(函数),非常简单(目前)
async Submit(){
//GET METHOD
try {
let response = await fetch('https://192.168.1.56:44344/api/values');
let responseJson = await response.json();
return Alert.alert(JSON.stringify(responseJson));
} catch (error) {
console.error(error);
}
}
好吧,首先,我们尝试了所有可能的解决方案,以将我的react native应用连接到我的.net核心api rest,它们都在localhost中运行,这是到目前为止,我们已经尝试过的事情到目前为止,仍然没有结果。
我们希望React Native能够获取api,因此我们可以继续进行Office 365登录身份验证。
编辑:我刚刚发现获取机器ip(这次运行Windows),我的ip在api和react native上均为192.168.0.9,获取结果显示了标题中的10.0.2.2:80 json响应中的一个,我想是react native的“ localhost” ip,如果React native显然不允许我这样做,我应该如何从localhost获取ip。
答案 0 :(得分:2)
从react-native获取localhost API时遇到了同样的问题。这是我为解决此问题所做的工作。 在启动类中,我从Configure方法中删除了 // app.UseHttpsRedirection(); 。(不确定是否需要)
之后,在properties文件夹下的launchsetting.js文件中,从
更改为“ applicationUrl”:“ https://localhost:5001;http://localhost:5000”
到 “ applicationUrl”:“ http://localhost:5000”
在React本机部分中,我只是用IP更改了本地主机:
获取('http://localhost:5000/values/')以获取('http://127.0.0.1:5000/values/')
这完全适合我
答案 1 :(得分:0)
在命令提示符下输入ipconfig,这样我们将获得许多地址。从中取出IPV4并将其复制到剪贴板。然后将此地址粘贴到后端端口地址和前端端口地址。 例如,假设IPV4地址为192.168.1.3,则使您成为类似于http://192.168.1.3:8080/patients的后端路由API,其中8080是端口号(没关系)。并使用相同的前端获取API结果。