-1

我在 kotlin 中使用 retrofit2 连接到 api 我从 API 获取数据在 Android API 22 中没有任何问题 但是当我在 Android API 30 上测试相同的程序时,它给了我以下答案并且在 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()
}

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

4

1 回答 1

0

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

<application
    . . .  .
    android:usesCleartextTraffic="true"
    tools:targetApi="m">
于 2020-12-04T11:41:57.760 回答