该应用程序正在向一个endpoint发出请求,该endpoint正在发回一个包含从数据库获取的数据的json字符串。这些数据有时可能会变得非常大,大到4mb,服务器的默认传输编码是分块的,因此当数据足够大时,它会将其分成块并将其发送到应用程序。问题是Retrofit似乎没有开箱即用地处理它,并因EOF错误而崩溃。我怎么能让Retrofit或更确切地说,OkHttp知道响应可能被分块呢?
我在一个Android应用程序上也有同样的问题。经过调查,我发现这不是代码问题。这是我的开发环境有一些问题!!!我的工作PC背后是一个反向代理,可能会破坏我的Android模拟器的超文本传输协议调用。
我从另一个PC运行相同的代码,如JUnit和Android模拟器,它的工作原理就像一个魅力!
我的建议是尝试在不同的环境中执行相同的代码… JUnit,真正的设备,另一个PC。
检查我的问题和我的回答。你会找到源代码的链接。
我关于传输编码分块的问题
希望对你有帮助。