Conexión de http de Android con OkHttp No funciona

Estoy tratando de usar OkHttp pero sigue fallando. ¿Puede alguien tener una mirada rápida y ver si sabes lo que está sucediendo. Gracias.

Log cat:

01-24 08:34:46.952: E/AndroidRuntime(31953): FATAL EXCEPTION: OkHttp Dispatcher 01-24 08:34:46.952: E/AndroidRuntime(31953): java.lang.NoClassDefFoundError: okio.Okio 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.internal.http.HttpConnection.<init>(HttpConnection.java:87) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.Connection.upgradeToTls(Connection.java:272) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.Connection.connect(Connection.java:158) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.Connection.connectAndSetOwner(Connection.java:174) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.OkHttpClient$1.connectAndSetOwner(OkHttpClient.java:120) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.internal.http.RouteSelector.next(RouteSelector.java:131) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:312) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:235) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.Call.getResponse(Call.java:262) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.Call$ApplicationInterceptorChain.proceed(Call.java:219) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.Call.getResponseWithInterceptorChain(Call.java:192) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.Call.access$100(Call.java:34) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.Call$AsyncCall.execute(Call.java:156) 01-24 08:34:46.952: E/AndroidRuntime(31953): at com.squareup.okhttp.internal.NamedRunnable.run(NamedRunnable.java:33) 01-24 08:34:46.952: E/AndroidRuntime(31953): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080) 01-24 08:34:46.952: E/AndroidRuntime(31953): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573) 01-24 08:34:46.952: E/AndroidRuntime(31953): at java.lang.Thread.run(Thread.java:841) 

Aquí está el ejemplo de código que estoy intentando utilizar. Es de un tutorial en línea (teamtreehouse.com) código Java:

 OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url(forecastUrl) .build(); Call call = client.newCall(request); call.enqueue(new Callback() { @Override public void onFailure(Request request, IOException e) { runOnUiThread(new Runnable() { @Override public void run() { toggleRefresh(); } }); alertUserAboutError(); } @Override public void onResponse(Response response) throws IOException { runOnUiThread(new Runnable() { @Override public void run() { toggleRefresh(); } }); try { String jsonData = response.body().string(); Log.v(TAG, jsonData); if (response.isSuccessful()) { mCurrentWeather = getCurrentDetails(jsonData); runOnUiThread(new Runnable() { @Override public void run() { updateDisplay(); } }); } else { alertUserAboutError(); } } catch (IOException e) { Log.e(TAG, "Exception caught: ", e); } catch (JSONException e) { Log.e(TAG, "Exception caught: ", e); } } }); 

2 Solutions collect form web for “Conexión de http de Android con OkHttp No funciona”

OkHttp necesita Okio, que OkHttp utiliza para la E / S rápida y los búferes redimensionables. Puedes descargar Okio (el último JAR) aquí .

o

Android gradle: compile 'com.squareup.okio:okio:1.6.0'

Maven

 <dependency> <groupId>com.squareup.okio</groupId> <artifactId>okio</artifactId> <version>1.6.0</version> </dependency> 

Para verificaciones de versiones; Github okio

Parece que hay una dependencia en la biblioteca 1.0 de OkHTTP. Es un informe conocido. Puede seguirlo en el siguiente enlace:

https://github.com/square/okhttp/issues/870

También debe incluir la biblioteca 1.0 en las librerías del proyecto.

  • HTTPS con Retrofit y OkHttp Handshake falló
  • Native crash en /system/lib/libssl.so utilizando Retrofit
  • Android Retrofit Se esperaba BEGIN_OBJECT pero era STRING en la línea 1 de la columna 1 path $
  • InterruptedIOException al usar Retrofit2 con rx cuando retryOn
  • MultipartBuilder no se puede resolver en okhttp: 3.0.0-RC1
  • Android cómo obtener la cadena de respuesta de Callback usando OkHttp?
  • Volley + OkHttp en Android da error en la respuesta de estado 200
  • OkHttpClient cerrar la conexión
  • Cómo agregar matriz a okhttp cuerpo (POST)
  • OkHttp certificado de confianza
  • Progreso de descarga con RxJava, OkHttp y Okio en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.