Retrofit2 - 无法从非空响应主体创建字符串
Retrofit2 - Unable to create string from non-null response body
我正在尝试进行 API 调用,然后将其响应用作字符串。到目前为止,我能够成功获取并记录响应......但是我尝试使用响应创建的字符串是空的,我不确定为什么会发生这种情况。
如有任何建议,我们将不胜感激:
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();
}
}
});
响应body只能使用一次。 https://square.github.io/okhttp/3.x/okhttp/okhttp3/ResponseBody.html
在您的代码中,您试图多次使用 body。 (一次是当你记录它,另一次是当你试图把它放在共享首选项中时)。
改为执行以下操作:
@Override
public void onResponse(ResponseBody responseBody) {
String data = responseBody.string();
Log.d("RAW_DATA", data);
sharedPreferences.edit().putString(myKey, data);
}
我正在尝试进行 API 调用,然后将其响应用作字符串。到目前为止,我能够成功获取并记录响应......但是我尝试使用响应创建的字符串是空的,我不确定为什么会发生这种情况。
如有任何建议,我们将不胜感激:
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();
}
}
});
响应body只能使用一次。 https://square.github.io/okhttp/3.x/okhttp/okhttp3/ResponseBody.html
在您的代码中,您试图多次使用 body。 (一次是当你记录它,另一次是当你试图把它放在共享首选项中时)。
改为执行以下操作:
@Override
public void onResponse(ResponseBody responseBody) {
String data = responseBody.string();
Log.d("RAW_DATA", data);
sharedPreferences.edit().putString(myKey, data);
}