Fetch / Axios 在 React Native 中严重崩溃(但仅限于某些 URL)

2024-03-28

我的应用程序在执行时严重崩溃certainAPI 调用,我将范围缩小到这一点:

  • 这不是 HTTP 与 HTTPS 的问题
  • 我最终使用了两种不同的模拟 API,令我惊讶的是,一种有效,另一种则无效。两者基本相同,请参阅下面的片段
  • WIFI 或蜂窝网络上的行为相同
  • axios 中的相同问题而不是 fetch
  • the catch块被调用时出现了一个不起眼的网络错误,但应用程序仍然严重崩溃

环境:Android 10(实际设备),RN 0.61.5

下面的两个调用都只是做了一个简单的操作HTTP GET这会导致返回 JSON 片段。一个有效,另一个导致严重崩溃。

async foo() {
    try {

        // this endpoint CRASHES my app
        const r = await fetch("http://jsonplaceholder.typicode.com/todos/1");
        
        // this endpoint works just fine
        //const r = await fetch("http://echo.jsontest.com/key/value/one/two");

    } catch(e) {
        console.log("Invoked, but the app still crashes hard right after");
    }
}

好的,我在 Logcat 中发现了一个提示 - 似乎使用 OkHttp3 导致了某种版本控制冲突,该冲突仅出现在其中一个响应中(可能是由于 CORS 标头,但这纯粹是毫无根据的猜测;)。

我的解决办法是改变我对 OkHttp3 的依赖build.gradle from

implementation "com.squareup.okhttp3:okhttp:4.7.2"

to

api(platform("com.squareup.okhttp3:okhttp-bom:4.7.2"))
api("com.squareup.okhttp3:okhttp")
api("com.squareup.okhttp3:logging-interceptor")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Fetch / Axios 在 React Native 中严重崩溃(但仅限于某些 URL) 的相关文章

随机推荐