使用Retrofit 2和Kotlin获取错误的原始HTML / JSON响应
我有这个小扩展函数来简化以同步方式从Call对象获取正文:
private fun <T> Call<T>.bodyOrError(): T? { val resp = this.execute() if (resp.isSuccessful) { return resp.body() } val errorBody = resp.errorBody()?.string() throw RuntimeException("Failed to parse the HTTP response: $errorBody") }
问题是这行引发“com.fasterxml.jackson.databind.JsonMappingException:不能反序列化的实例java.lang.String超出START_OBJECT标记”:
val resp = this.execute()
如果我决定捕捉这个异常,我怎么得到它试图解析的原始JSON / HTML响应,所以我可以把它包含在异常堆栈跟踪中? 想象一下,这是发生在生产(这就是为什么我不想使用任何HttpLoggingInterceptor等),我会相当注定,因为我不知道在解析过程中究竟出了什么问题。 (我正在使用杰克逊解析器)
提前致谢!
- Kotlin Dagger 2不能提供交互器
- 错误:未找到注释处理器'__gen.AnnotationProcessorWrapper_debug_android_databinding_annotationprocessor_ProcessDataBinding'
- 匕首2在Kotlin未解决的参考DaggerXXXSub
- 匕首2与Kotlin,在ApplicationComponent中返回泛型类型
- HttpLoggingInterceptor不与日志记录2
- 使用kapt时,Dagger跳过Google服务模块的工厂代码
- Android Dagger:我无法提供没有@Inject构造函数的外部类
- 将自定义类的响应主体改造2
- 如果没有kotlin中的@ Provide-或@ Produces注解方法,则不能提供上下文