0
Ich brauche den synchronen Aufruf, um das Auth-Token zu aktualisieren, aber ich habe 'NetworkOnMainThreadException'.Android Retrofit 2 synchroner Anruf
@Synchronized
fun refreshToken(): String? {
val refreshToken = AuthService.getRefreshToken(context)
var id_token: String? = null
val call = apiService.refreshToken("refresh_token", refreshToken)
val response = call.execute()
id_token = response.body()
if (id_token != null)
{
AuthService.saveTokens(context, id_token)
}
})
return id_token
}
Wie soll ich die "NetworkOnMainThreadException" vermeiden?
D/OkHttp: --> POST https://localhost/api/auth/refresh http/1.1 (372-byte body)
D/OkHttp: <-- HTTP FAILED: android.os.NetworkOnMainThreadException
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.test, PID: 1537
android.os.NetworkOnMainThreadException
...
Synchron Anrufe verursachen nicht diese Ausnahme nennen sollte. Das Aufrufen des Netzwerks an einer beliebigen Stelle im Haupt-Thread funktioniert. Bitte zeigen Sie eine [mcve] und die vollständige logcat –
Auch nicht das Problem, aber nach dem Abrufen des Token, kann dies einfach asynchron mit 'call.enqueue()' getan werden –