不能解决“内容长度和流长不一致”的错误

尝试执行以下代码时出现错误:

fun parseErrorCodes(response: Response<*>): List<String> { val errorCodes: MutableList<String> = ArrayList() try { val listType = object : TypeToken<ArrayList<ApiError>>() { }.type val errorJson = JsonParser().parse(response.errorBody().string()).asJsonObject.get("response") if (errorJson.isJsonArray) { val errors = Gson().fromJson<List<ApiError>>(errorJson, listType) for (apiError in errors) { errorCodes.add(apiError.errorCode) } return errorCodes } else { errorCodes.add(Gson().fromJson(errorJson, ApiError::class.java).errorCode) return errorCodes } } catch (e: Exception) { e.printStackTrace() } return errorCodes } 

错误发生在以下行: val errorJson = JsonParser().parse(response.errorBody().string()).asJsonObject.get("response")

有人可以帮我解决这个错误吗?

我找到了我的问题的答案。 问题是我试图解析API的响应两次,第一次显示错误消息,然后得到错误代码来处理它们以备将来验证。

这是我的代码看起来如何:

 ErrorHandler.showError(activity, response) val errorCodes = ErrorHandler.parseErrorCodes(response) handleErrorCodes(errorCodes) 

所以,这两个方法showError和parseErrorCodes都与API响应。