2016-04-11 48 views
0

Tamam, bu yüzden biraz kafam karıştı.Oturum açamıyor OKHTTP3 response.body.string

Bir OKHTTP3 POST'u kurdum. Ben bir dizeye vücudu koymak için çalışıyorum yanıtını aldığınızda (bir dize tepkidir) ama bir şey sakat oluyor:

try { 
     Response response = client.newCall(request).execute(); 

     String rep = response.body().string(); 
     if(rep.length() > 0){ 
      Log.i(TAG, "Got Response"); 
      Log.i(TAG, rep); 
     } 

    }catch (Exception e){ 
     e.printStackTrace(); 
    } 

Bir Giriş "Got Yanıtı" diyerek ama olsun (uzunluğudur 80) o zaman durur. Rep dizilimin boş ya da boş olduğunu söylemiyor ... Sadece bu ikinci Günlüğü çağırmıyor.

Neyin olduğu hakkında herhangi bir fikrin var mı?

+0

Bir tarayıcıdan URL'ye erişmeye çalışın. Bu cevabı aldın mı? –

cevap

0

Bu sorunla da karşılaştım, Log çalışamıyor.
Geçici bir çözüm buldum.
Yanıtı göstermek için Toast kullanmayı denedim, sonra yanıtın çok sayıda boşluk bulunduğunu (ancak bu karakterlerin boşluk olup olmadığından emin değilim) buldum.

Yani iyi çalışıyor Log.i(TAG, rep.trim()); kullanıyorum. Bu sorunun bu sorun için iyi olup olmadığını bilmiyorum, ama sonuçta benim için çalışıyor.

+0

Vay canına! Siz rock-Bu sorunu çözdünüz, teşekkürler! –

+0

hahaha ... sadece bir kazara çalışıyor, büyük bir anlaşma değil. – KiBa1215

0

Yani görünen o ki bir AsyncTask dizesini alır parçası koymak için gerekli ... Sağ .. Bu kullanılarak

 OkHttpClient client = new OkHttpClient.Builder().build();   

     Request request = new Request.Builder() 
      .url("") 
      .build(); 

     client.newCall(request).enqueue(new Callback() { 
      @Override 
      public void onFailure(Call call, IOException e) { 
       e.printStackTrace(); 
      } 

      @Override 
      public void onResponse(Call call, Response response) throws IOException { 
       try { 

        Log.d("Response",response.body().string()); 

        } 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } finally { 
        response.body().close(); 
       } 
      } 

     }); 
+0

Aynı sonuç ... –

+0

İsteğe bağlı olup olmadığını kontrol etmeye çalışın withf (response.isSucessful()) {} ' –

+0

Ekledim isSuccessfull, ve şunu gösterdi ... Eklendi: ' Log.i (" "," Cevabı "); Log.d ("Yanıt", response.body(). String()); Log.i ("Logged olmalı", "Response"); , ilk günlüğü, üçüncü günlüğü çağırır, sonra body.close'a doğru gider. : -/ –

0

deneyin ve çalışmaya başladı.

Herhangi bir hata mesajı ya da bunu belirten bir şey yoktu, ama geri döndüm ve aslında Geri Arama için belgelere baktım ve başka bir iş parçacığı üzerinde vücudun tüketilmesinden bahsediyor.

new SendPictureClass().execute(response); 

Muhtemelen başlamak için ... _ yardım çocuklar için (ツ) _/¯

Teşekkür orada başlamış olmalıydı!