处理分块传输编码 Retrofit 2

5

该应用程序正在向一个端点发出请求,该端点返回一个包含从数据库获取的数据的json字符串。这些数据有时可能非常巨大,最多可达4mb,服务器的默认传输编码是分块编码,因此当数据足够大时,它会将其分成块并发送到应用程序。 问题在于,Retrofit似乎没有处理这个问题,导致出现EOF错误而崩溃。 我该如何让Retrofit或者更准确地说是OkHttp知道响应可能是分块的呢?


你找到答案了吗?我遇到了类似的问题,主要是为了相应地获取要解析的块的大小。 - xrnd
很遗憾,我们只能从服务器发送较少的数据。 - Jude Fernandes
1个回答

2

我在一个安卓应用程序中遇到了同样的问题。经过调查,我发现问题不是代码的问题,而是我的开发环境出了一些问题!我的工作电脑位于反向代理之后,这可能会导致我的安卓模拟器无法进行HTTP调用。

我在另一台电脑上运行了相同的代码,像JUnit和安卓模拟器一样都能正常工作!

我的建议是尝试在不同的环境中执行相同的代码... JUnit、真实设备或者另一台电脑。

请查看我的问题和答案。你会在其中找到源代码的链接。

关于传输编码chunked的问题

希望对你有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接