如何使用 Retrofit 保存和累积请求体数据?

How do I save and accumulate the request body data using Retrofit?

我在 Android 上使用 Retrofit 通过一系列 PUT 请求将大文件发送到服务。代码有效(或看起来有效!),现在我想添加一些单元测试。文件传输被分成块并在多个请求中发送。我希望我的测试能够捕获请求正文数据并将其全部累积起来,然后在最后我将验证发送的串联数据块是否与测试文件完全匹配。这是为了验证不存在块边界错误或重叠之类的事情。

我已经阅读了有关 Retrofit MockWebServer 的信息,但在这种情况下,我不关心 mocking/processing 服务器响应——我只关心请求。

我知道我可以通过向 Retrofit 使用的 OkHttpClient 实例添加一个拦截器并自己做 gathering/buffering 来实现自己的目标,但这似乎是人们以前必须做过的事情,我想知道是否也许有一个不同的模拟服务器直接支持这个?

(非常清楚,我说的是请求,而不是响应。)

查看示例

它使用 MockWebServer 作为访问 RecordedRequest 的一种方式