FATAL EXCEPTION: main Process: com.packagename, PID: 11371 java.lang.IllegalStateException: Cannot read raw response body of a converted body.
在referfit中,您只能读取response.body()一次,因为它是一个流,一旦调用.string()
或自动转换为response
返回类型中的任何模型类,它就会自动关闭。如果你尝试读两次,那么你会得到上面的错误。
我既需要原始响应字符串,也需要模型类。做这件事最好的方法是什么?我不想调用两次API。有什么方法可以复制响应体吗?理想情况下,我希望简单地获取String并返回响应。也就是说,不必放弃改型带来的通用类型转换器的好处
您可以通过添加拦截器(https://square.github.io/okhttp/interceptors/),并在返回响应之前复制responsebody BufferedSource来获得原始响应主体。我很难理解为什么有人想这么做。
Response response = chain.proceed(request);
ResponseBody responseBody = response.body();
ByteArrayOutputStream output = new ByteArrayOutputStream();
responseBody.source().getBuffer().copyTo(output);
String rawResponseBody = output.toString();
return response;
我正试图通过改型2获得原始响应。0.2. 到目前为止,我试图使用以下代码行打印响应,但它打印的是地址,而不是确切的响应正文。 日志i(“原始消息”,response.body()。toString());
如何获得原始json输出。如果可能的话,我不想实现用户数据类和解析器。有什么办法吗? 标记重复的帖子(获得原始HTTP响应与改造)不是为Kotlin和我需要Kotlin版本。
是否可以使用改型库只累加字符串响应?我有一种情况,我需要在我的链接上添加查询,以便该链接看起来像:localhost//register?handle=someid SomeID是整数,当我这样做时,我将从服务器收到由20个字符组成的字符串格式的响应。我怎样才能得到那个回应?改型甚至可以处理不是Json格式的响应吗?
如何将此Json响应转换为改装bean我得到了Gson错误,就像使用JsonReader一样。setLenient(true)在第1行第1列路径接受格式错误的JSON$ api调用为 字符串CATEGORY\u API=“”https://api.callingservice.com"; 请帮助我解决这个问题,如何将Json响应转换为Bean,我的Bean类如下
如果我尝试实现一个自定义转换器(我在网上找到了一些例子),它会抱怨我没有实现抽象方法convert(F),而这些例子都没有实现。 谢了。