Wenn OKHttp-Client über OKClient in Google App Engine verwendet wird, wird ein "java.lang.NoClassDefFoundError: java.net.ProxySelector" als eingeschränkter Klassenfehler ausgegeben

8

Ich versuche, OKHTTP (Version 2.4.0) zusammen mit dem Retrofit (1.9.0) auf der Google App Engine (1.9.22) zu verwenden.

Hier ist die Art, wie ich es benutze:

%Vor%

Dies wirft den folgenden Fehler auf:

%Vor%

Ich entnehme dem Fehler, dass "java.net.ProxySelector" für die Verwendung in Google Appengine nicht in der weißen Liste aufgeführt ist.

Frage 1) Ist es möglich, OKHTTP (Version 2.4.0) beim Nachrüsten (1.9.0) auf der Google App Engine (1.9.22) zu verwenden? d. h., gibt es eine Arbeit für diesen Fehler

wenn nicht, Frage 2) Gibt es einen anderen Weg zu:

%Vor%

Die Links, die ich über die Suche gefunden habe: (1) Retrofit-Timeout-Konfiguration für Clients (2) Google App Engine-URL Abruf-Java-API

    
manyar 18.06.2015, 09:49
quelle

3 Antworten

4

Sie können HttpUrlConnection mit Retrofit2 verwenden, um es in der Google APP Engine zu verwenden

%Vor%

}

    
sumit matta 11.07.2016 15:10
quelle
0

Sie können das folgende Code-Snippet verwenden, um Retorifit2 mit GAE-Einschränkungen auszuführen. Es enthält eine Menge Debugging-Tools, die in der Produktion entfernt werden können, und implementiert keinen echten Async-Aufruf.

%Vor%     
Alexei Volkov 07.07.2016 12:49
quelle
0

Sie müssen den Appengine URLFetchClient anstelle des OkHttpClient verwenden. So:

%Vor%

Bitte beachten Sie, dass dies nur mit Retrofit1 funktioniert. Dies funktioniert nicht mit Retrofit2, da es direkt mit OkHttp gekoppelt ist, wie von Jake Wharton erklärt hier

    
atimothee 20.08.2016 14:28
quelle