无法在Android语法上获取GET请求而未到达API语法错误:JSON解析错误意外的EOF解析@ [本机代码]

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

以下代码可以在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证书,但这没什么作用
  • 我试图在snack中重新创建它,但是在snack中的Android Emulator上似乎可以正常工作吗?但仍然不在设备上。
hessler2009 回答:无法在Android语法上获取GET请求而未到达API语法错误:JSON解析错误意外的EOF解析@ [本机代码]

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

本文链接:https://www.f2er.com/3083670.html

大家都在问