2015-10-23 4 views
5

Wenn Sie von OkHttp Bibliothek von 1.x auf 2.x aktualisieren, grandios die OkHttpClient Methode "open" fehlt. Der folgende Code wird NICHT kompiliert.OkHttpClient "open" -Methode fehlt in v2.0

 OkHttpClient client = new OkHttpClient(); 
     HttpURLConnection conn = client.open(url); 

Antwort

11

Gemäß den offiziellen change log:

URLConnection Unterstützung der okhttp-URLConnection Modul bewegt hat. Wenn Sie ein Upgrade von 1.x durchführen, wirkt sich diese Änderung auf Sie aus. Sie müssen den okhttp-URLConnection Modul zu einem Projekt hinzuzufügen und die OkUrlFactory zu verwenden, um neue Instanzen von HttpURLConnection zu erstellen:

// OkHttp 1.x: 
HttpURLConnection connection = client.open(url); 

// OkHttp 2.x: 
HttpURLConnection connection = new OkUrlFactory(client).open(url); 

Denken Sie daran, die Abhängigkeit, wie unten in die Gradle Datei hinzuzufügen.

compile 'com.squareup.okhttp:okhttp-urlconnection:2.5.0' 
1

Ab OkHttp 3.x OkUrlFactory veraltet markiert worden war, zugunsten der neuen Request/Response Stil der Anrufe, die flexibler ist. Einige Informationen: https://publicobject.com/2015/12/15/okurlfactory-is-going-away/

So ist die neue Stil wird mehr wie folgt aussehen:

OkHttpClient httpClient = new OkHttpClient() 

Request request = Request.Builder() 
    .url(url) 
    .build() 
Response response = httpClient.newCall(request).execute() 
Verwandte Themen