我正在尝试使用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被调用/到达。
我所能找到的是:
原来我在传递URL字符串的MySql语法中使用通配符(%)。 IOS处理了这个发现,Android没有。调整后端以处理通配符会有所不同,显然,如果要在URL字符串中传递'%',则显然无法在Android上使用Fetch API。