2017-10-11 5 views
0

APIコールを作成しようとしていますが、レスポンスを文字列として使用しようとしています。これまでのところ、私は正常に応答を取得し、ログに記録することができます...しかし、私は応答を使用して作成しようとしている文字列が空であり、私はなぜこれが起こっているかもしれないのか分かりません。Retrofit2 - null以外のレスポンスボディから文字列を作成できません

任意の提案が高く評価されています

api.getUser().enqueue(new API.SimpleCallback<ResponseBody>() { 
     @Override 
     public void onResponse(ResponseBody data) { 
      try { 
       Log.d("RAW BODY", data.string()); 
        final SharedPreferences.Editor editor = App.sharedPrefs.edit(); 
        String responseString = data.string().toString(); 
        editor.putString(NOTIFICATION_PREFERENCES_ENABLED_STATUS,responseString); 
        editor.apply(); 


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

     } 

    }); 

enter image description here

答えて

0

レスポンスボディは一度だけ消費することができます。 https://square.github.io/okhttp/3.x/okhttp/okhttp3/ResponseBody.html

コードでは、本体を複数回消費しようとしています。 (ログをとると一度だけ、共有設定に入れようとするともう一度)。

@Override 
public void onResponse(ResponseBody responseBody) { 
    String data = responseBody.string(); 
    Log.d("RAW_DATA", data); 
    sharedPreferences.edit().putString(myKey, data); 
} 

代わりのような何かを

関連する問題