ich meine http Anrufe über die OkHttp Bibliothek implementieren. Alles funktioniert gut, aber ich bemerkte, dass, wenn ich den Körper als eine Zeichenfolge der Antwort zweimal zugreifen wird IllegalStateException
geworfen werden. Das heißt, ich tun (zum Beispiel): Log.d("TAG", response.body().string())
und danach möchte ich eigentlich diese Zeichenfolge wie processResponse(response.body().string())
verwenden. Aber dieser zweite Aufruf löst die Ausnahme mit der Nachricht closed
aus.Zugriff auf Körper Zeichenfolge eines OkHttp Antwort zweimal ergibt Illegal: geschlossen
Wie kann es möglich sein, dass in einem Ausfall einen String zweimal führt zugreifen? Ich möchte diese Antwort verarbeiten, ohne ein Wrapper/Dummy-Objekt hinzufügen zu müssen, nur um einige Werte zu speichern (wie Header, Body, Statuscode).
Ich hatte gehofft, dass ich das 'Response' Objekt einfach wiederverwenden könnte. Bevor OkHttp verwendet wurde, habe ich ein angepasstes ApiResult-Objekt zurückgegeben, wo ich gerade alle relevanten Informationen gespeichert habe, aber es ist nur ein Duplikat IMO. – degill
vielleicht sollten Sie diese [Problem] (https://github.com/square/okhttp/issues/1240) auf Github überprüfen. – penkzhou
Ich verstehe deinen Standpunkt. Ich denke, sie wollten es nur so niedrig wie möglich halten, ohne das Ergebnis zwischenzuspeichern, das nie wieder aufgerufen wird. –