Was verursacht HTTP-FEHLER: java.net.SocketException: Socket geschlossen?

8

Ich verwende okhttp und Retrofit für eine meiner Anwendungen und ich habe viele Anfragen, die mit RxJava an verschiedenen Threads arbeiten. Manchmal habe ich SocketException für jede Anforderung erhalten und danach kann keine Anfrage den Server erreichen.

Für z.B. Ich kann eine Probe teilen.

Ein paar modifizierte Snippets aus Code, den ich teilen kann.

%Vor%

Von allen 3 Callbacks wurde nichts aufgerufen.

Stackstace:

%Vor%

Andere IOException

%Vor%

Abonnement Ich versuche häufig zu telefonieren funktioniert gut, aber manchmal über Fehler ist da und dann funktioniert nicht mehr. Afterwords keine Anfrage kann den Server erreichen.

Methode von Retrofit-Schnittstelle

%Vor%

Im Folgenden einige Hilfsmethoden, nur um die Konfiguration zu überprüfen, falls etwas benötigt wird.

%Vor%

Abhängigkeiten

%Vor%     
Jignesh Patel 17.11.2016, 10:49
quelle

2 Antworten

1

In meinem Fall war das, was ich entdeckt habe, ein plötzlicher unerwarteter unsubscribe() -Aufruf, der den HTTP FAILED: java.net.SocketException: Socket closed -Fehler verursachte und keinen der onCompleted() onError() oder onNext() Callbacks aufruft - seht euch die Diskussion und Antwort hier .

Um diesen Fall bearbeiten zu können, fügen Sie einfach Folgendes hinzu:

%Vor%

zu deinem Observable und versuche vielleicht, dort einen Zustand zurückzusetzen, was hoffentlich dazu führen würde, dass normale Aktivitäten wieder aufgenommen werden können.

    
Bojan Ilievski 15.05.2017 16:11
quelle
0

In meinem Fall habe ich eine falsche URL mit dem Fehler ERR_CONNECTION_REFUSED angefordert.

    
CoolMind 17.10.2017 19:54
quelle

Tags und Links