2015-01-24 1 views
8

OkHttp를 사용하려고하는데 충돌이 계속됩니다. 누군가가 빨리 볼 수 있고 무슨 일이 일어나고 있는지 알 수 있습니까? 고맙습니다.안드로이드 HTTP 연결 OkHttp 작동하지 않음

로그인 고양이 : 여기

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) 

내가 사용하려고 코드 샘플입니다. 그것의 튜토리얼 온라인에서 (teamtreehouse.com) 자바 코드 :

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); 
        } 
       } 
      }); 

답변

29

Okio 필요 OkHttp, OkHttp 빠른 I/O 및 크기 조정 버퍼를 위해 사용합니다. Okio (최신 JAR) here을 다운로드 할 수 있습니다.

또는

안드로이드 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> 

for version checks; github okio

+0

메이트, 당신은 생명의 은인입니다. 대단히 감사합니다. – Joolah

관련 문제