Estoy tratando de obtener una API alojada localmente desde el servidor ASP.NET:
try { const response = await fetch(`https://localhost:2318/api/Restaurant`) const data = await response.json() console.log(data) } catch (error) { console.error(error) }Sin embargo, arroja un error:
Network request failed at node_modules/whatwg-fetch/dist/fetch.umd.js:535:17 in setTimeout$argument_0Ninguno de mis puntos finales funciona. Obtención de API públicas funciona. También es extraño que abrir la URL de búsqueda https://localhost:2318/api/Restaurant en Safari dentro del simulador funcione y devuelva los datos como se esperaba.
Estoy usando Expo v42.0.1, RN v0.66.
¿Algunas ideas?
Está realizando una solicitud al servidor localhost que tendrá un certificado autofirmado. Por lo tanto, iOS o Android no permitirán obtener de esa API de inmediato.
La solución más fácil sería usar react-native-fetch-blob . (Simplemente pase confiable como verdadero).
RNFetchBlob.config({ trusty : true }) .then('GET', 'https://example.com') .then((resp) => { // ... })Y si aún desea usar fetch y pruebe la solución a continuación.
Si desea habilitar las solicitudes HTTP, agregue esto a su info.plist:
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key> <true/> </dict>Puede usar llamadas HTTPS (autofirmadas) usando la implementación a continuación.
Fetch () nativo de React desde el servidor https con certificado autofirmado
Si está utilizando un dispositivo Android para probar:
Pruebe la siguiente solución: https://stackoverflow.com/a/55246927/8893384