获取GET请求未到达Android上的API

问题描述 投票:0回答:1

我正在尝试使用Fetch API来处理和获取请求。到公共AWS API网关(无需授权)。

以下代码可在IOS(iPhone和Ipad)但不能在Android上完美运行:

fetchData= async() =>{
  const { navigation } = this.props;
  const AAA = navigation.getParam('AAA',);
  const route= '/info'

  const response = await fetch(`${config.url}${route}?AAA=${AAA}`,
  {
    method: "GET",
    headers: {
      'x-api-key': config.key
    }
  });
  const setdata = await response.json();
  this.setState({data: setdata});
}

我当前正在使用Expo Managed应用程序,并且正在设备上通过Expo Cli进行测试。我正在使用Expo SDK 34。试图避免将AWS Amplify库添加到如此庞大的规模,以满足这种需求。如果将响应放入Console.warn(response),则会收到错误消息:

语法错误:JSON解析错误,意外的EOF解析@ [本机代码]

AWS上的CloudWatch指标甚至没有显示API被调用/到达。

我所能找到的是:

  • 使用okHttp的POST请求会附加一个Content-Type标头,该标头会导致问题(尽管GET请求似乎没有问题)
  • 通过Android向“ https” URL和“ https”提出的请求失败(但我的API是“ https”)
  • 向我的API添加了SSL证书,但没什么作用
  • 我试图在零食中重新创建它,但是在零食中的Android仿真器上似乎可以正常工作吗?但仍然不在设备上。
android get react-native-android expo fetch-api
1个回答
0
投票

原来我在传递URL字符串的MySql语法中使用通配符(%)。 IOS处理了这个发现,Android没有。调整后端以处理通配符会有所不同,显然,如果要在URL字符串中传递'%',则显然无法在Android上使用Fetch API。

© www.soinside.com 2019 - 2024. All rights reserved.