React Native / Expo iOs - 网络请求因我的 Api 上的 Fetch 而失败

Posted

技术标签:

【中文标题】React Native / Expo iOs - 网络请求因我的 Api 上的 Fetch 而失败【英文标题】:React Native / Expo iOs - Network Request Failed with Fetch on my Api 【发布时间】:2020-02-04 13:02:20 【问题描述】:

首先:我浏览了很多(很多)关于这个问题的帖子,对它们都进行了测试,但似乎我被诅咒了,或者类似的东西?

我正在 iO 上使用 LAN 方法进行博览会。 我支持.Net Core 3。 我的 iPhone 和我的电脑在同一个 Wifi 上。 我的电脑正在运行我的 .Net 后台服务器。

我发现本地主机无法由 expo/react-native 处理。因此,我尝试了 IP 地址方法并更改了我的背面地址和正面试图获取的地址。 尝试了带有 expo 的 infoPlist。用我的 .Net 服务器尝试了一些我不完全理解的神秘事物。还试图关闭我的防火墙,它没有改变任何东西。 好吧,我不习惯发帖,因为现有帖子经常回答我的问题。

这是我的获取方法的代码:

export async function callPlanning() 
    try 
        let response = await fetch(
          "http://my.Ipv4.adress:myApiPort/myRoute",
        );
        let responseJson = await response.json();
        return responseJson;
       catch (error) 
        console.error(error);
      

我的 Api 在 Postman 上运行良好。 我可以在我的应用程序中使用此功能调用 facebook 测试 api。

这是我调用此获取函数的应用代码:

export default class BetaserieScreen extends Component 
  constructor(props) 
    super(props)
    this.state=
      response: null,
    ;
    this.askPlanning = this.askPlanning.bind(this);
  

  askPlanning = () => 
    this.setState(
      response: Back.callPlanning(),
    )
  

  render() 
    return (
      <View style=styles.MainContainer>
        <Text> Beta Serie </Text>
        <TouchableHighlight onPress=this.askPlanning>
          <Text>Planning</Text>
        </TouchableHighlight>
      </View>
    );
  

如果您看到任何可以回答我的问题或关于我的代码的内容:我会接受的。 我已经解决了2天,我必须找到解决方案...... 如果您需要有关我的系统或有关我的项目的文件的任何其他信息,如果您认为可以帮助我解决此问题,请随时提出要求。

我会很高兴的。

【问题讨论】:

【参考方案1】:

原因是ios默认阻塞了http协议的请求 在这里签到https://reactnative.dev/docs/network

【讨论】:

以上是关于React Native / Expo iOs - 网络请求因我的 Api 上的 Fetch 而失败的主要内容,如果未能解决你的问题,请参考以下文章

React Native Expo branch.io

使用 React Native + Expo 时,iOS API 在哪里访问?

facebook登录错误,react-native ios expo

React Native / EXPO / iOS Simulator Stuck @ 'Downloading Javascript Bundle 100%'

如何为 create-react-native-app 生成 apk 文件(使用 EXPO.IO 组件)

Expo react-native 将无法连接到 socketio(Android 和 iOS)