在较新的 Android 上使用 retrofit2 获取数据时出现问题

Problem in get data on using retrofit2 on newer Android

我在 kotlin 中使用 retrofit2 连接到 api 我从 API 获取数据,在 Android API 22 中没有任何问题 但是当我在 Android API 30 上测试同一个程序时,它给了我以下答案并且 return API 答案中没有任何值。

D/OkHttp: --> POST http://Examples.com/api/login?email=xxxxx%40yahoo.com&password=123
    Content-Length: 0
D/OkHttp: Accept: application/json
D/OkHttp: --> END POST (0-byte body)

我执行以下操作

fun client() : OkHttpClient{
    return OkHttpClient.Builder().
        addInterceptor(HttpLoggingInterceptor().apply { level = HttpLoggingInterceptor.Level.BODY }).
    connectTimeout(mConnection_TimeOut, TimeUnit.SECONDS).
            writeTimeout(mConnection_TimeOut, TimeUnit.SECONDS).
            readTimeout(mConnection_TimeOut, TimeUnit.SECONDS).build()
}

fun getRetrofit() : Retrofit
{
    return Retrofit.Builder().
            addConverterFactory(GsonConverterFactory.create()).baseUrl(Const.BASE_URL).
            client(client())
        .build()
}

模拟器和手机都会出现这个问题

如果您在较新的 Android 上从 retrofit2 检索信息时遇到问题,只需将以下值添加到文件 AndroidManifest.xml

<application
    . . .  .
    android:usesCleartextTraffic="true"
    tools:targetApi="m">