Ich habe ein Problem mit einer Android-App beim Versuch, einige Api-Daten mit RxJava2 und Retrofit2 (in Kotlin) abrufen. Sobald ich den Anruf ausführe, wird der Bildschirm schwarz und die Anwendung antwortet einfach nicht mehr, ohne irgendwelche Protokollnachrichten.RxJava2 + Retrofit schwarzen Bildschirm bei Datenanforderung
Der Aufruf URL Ich verwende ist die folgende:
api/apartments?projection={"id":1,"address":1}
Die Service-Schnittstelle für diesen Aufruf ist dies ein:
@GET("api/apartments?projection={\"id\":1,\"address\":1}")
fun getAllApartments(@Header(AUTHORIZATION) auth: String): Single<List<APTLIST>>
Dies ist die Art, wie ich den Anruf auszuführen:
override fun getAllApartments(): Single<List<APTLIST>> = retrofit.create(ApartmentsService::class.java).getAllApartments("$BEARER$token")
Und so nenne ich die Funktion:
getAllApartmentsUseCase.getAllApartments()
.subscribe(
{
apartments.clear()
apartments.addAll(it)
view.showApartments(apartments)
},
{ println(it.message) }
)
Dieser Aufruf funktioniert auf Postman und das Ergebnis ist die folgende:
[
{
"_id": "591ecaca861a528a5b4c3d90",
"id": "ROC 03"
},
{
"_id": "591a0fb2861a528a5b4c3d60"
},
{
"_id": "58be94d484c4b0a468fb93e0",
"id": "CAN 2.3",
"address": "Els Refugis"
}
]
versuchen sie den Endpunkt ohne Rückkehr Single zu konsumieren. Nicht sicher, dass Ihr Problem mit RX – paul
zusammenhängt. Es scheint, es ist nicht, wenn der synchrone Anruf mit Nachrüstung über .execute() ausgeführt wird, friert es auch mit dem schwarzen Bildschirm ein. Vielleicht ist es die Art, wie ich diese URL-Abfrage verwende? – Joan
Nicht mit Android Mate vertraut machen. Versuchen Sie einfach, eine sehr einfache Anfrage an den Endpunkt zu stellen – paul