如何解析多范围请求响应

How to parse multi-range request response

我正在尝试发送具有多个范围的范围请求,如此处所述:。问题是我无法正确解析响应。我如何使用 OkHttp 解析它?

我能够按照此答案 中的描述完成此操作。 我导入了以下库:

compile 'com.sun.mail:android-mail:1.5.5'

所以我的代码现在如下所示:

Request request = new Request.Builder()
        .url(url)
        .addHeader("range", String.format("bytes=%s", TextUtils.join(", ", ranges)))
        .build();
Response response = client.newCall(request).execute();
ByteArrayDataSource dataSource = new ByteArrayDataSource(response.body().byteStream(), response.body().contentType().toString());
MimeMultipart multipart = new MimeMultipart(dataSource);
int count = multipart.getCount();
for (int i = 0; i < count; i++) {
    BodyPart bodyPart = multipart.getBodyPart(i);
    if (bodyPart.isMimeType("application/octet-stream")) {
        processBinaryStream(bodyPart.getInputStream());
    } else {
        // Or process different types of data
        throw new Exception(String.format("Content type: %s cannot be parsed", bodyPart.getContentType()));
    }
}

我仍然不满意,不得不导入整个邮件处理库,只是为了管理多部分响应。但目前,问题已经解决,直到我找到或想出更好的解决方案。