我有以下问题。我通过向在我的本地计算机上运行的服务器发出api请求来获取数据。服务器是用ASP.NET编写的。我知道当我使用模拟器时,当我必须向localhost发出请求时,我应该将我的IP地址成功地调用我的本地计算机而不是模拟器。即使我改变到我正确的IP地址,我仍然有'网络请求失败'
这是我获取数据的代码
componentDidMount() {
fetch('http://IpAdress:54372/api/cars')
.then((response) => response.json())
.then((responseJson) => this.setState({cars: responseJson}))
.catch((error) => {
console.error(error);
})
;
}
的package.json
"react": "^16.3.0-alpha.2",
"react-native": "0.55.3",
答案 0 :(得分:0)
通过Wi-Fi连接
您还可以通过Wi-Fi连接到开发服务器。您首先需要使用USB电缆在设备上安装应用程序,但一旦完成,您可以按照这些说明进行无线调试。
在继续操作之前,您需要使用开发机器的当前IP地址。
打开终端并输入/ sbin / ifconfig以查找计算机的IP地址。
确保您的笔记本电脑和手机位于同一Wi-Fi网络上。
在您的设备上打开您的React Native应用。 您会看到一个错误的红色屏幕。还行吧。以下步骤将解决这个问题。 打开应用内开发者菜单。 转到开发设置→设备的调试服务器主机。 键入计算机的IP地址和本地开发服务器的端口(例如10.0.1.1:8081)。 返回Developer菜单并选择Reload JS。
您现在可以从“开发人员”菜单启用实时重新加载。只要您的JavaScript代码发生变化,您的应用就会重新加载。
答案 1 :(得分:0)
以与列出localhost相同的方式将您的IP地址添加到Info.plist:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
<key>your.ip.adress.here</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>