我不明白为什么我不能这样做:
String accept = response.body().string();
例外:
线程中的异常" main" java.lang.IllegalStateException:已关闭
部分代码:
Request request = new Request.Builder()
Response response = client.newCall(request).execute();
response.newBuilder();
" OkHttpClient"的典型问题。
答案 0 :(得分:0)
我通常通过创建传递新的Callback对象来实现:
@Override
public void retrieveEvents(String username) {
service.getEvents(username).enqueue(new Callback<ArrayList<Event>>() {
@Override
public void onResponse(Call<ArrayList<Event>> call, Response<ArrayList<Event>> response) {
if(response.isSuccessful()) {
view.updateEventsView(response.body());
view.setFetching(false);
}
}
@Override
public void onFailure(Call<ArrayList<Event>> call, Throwable t) {
t.printStackTrace();
view.updateEventsView(new ArrayList<Event>());
view.setFetching(false);
}
});
}
因此,在您的情况下,您可以将响应的主体设置为字符串值。