Multipart RequestBody用于拍摄的照片或拍摄的照片(Filedescriptor,URI ....)

时间:2016-02-06 22:06:56

标签: retrofit2

我必须发送一个图片文件(可以是视频顺便说一句),在手机上挑选或拍摄。 问题如下: - Android版本可以预先kitkat - 当我可能只有FileDescriptor时,Retrofit接受一个使用File或字节数组构建的RequestBody

看到其他帖子,看起来从手机中检索资产是真实的*** 我明白这个问题很广泛! ....这就是问题

1 个答案:

答案 0 :(得分:0)

我带来的是以下内容: - 为了图片 fis是一个基于FileDescriptor的inputStream,如

FileInputStream fileInputStream = new FileInputStream(fileDescriptor);

然后我读取inputStream以获得byteArray

ByteArrayOutputStream out = new ByteArrayOutputStream();
    byte[] result = null;
    try {
        byte[] input = new byte[fis.available()];
        int read;
        while ((read = fis.read(input)) != -1) {
            out.write(input, 0, read);
        }
        result = out.toByteArray();
        fis.close();
        out.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    return result;

在我像往常一样创建一个Requestbody之后,我将其传递给使用特殊零件值的特殊后期多部分方法进行改造

... , @Nullable @Part("picture\"; filename=\"picture\" ") RequestBody picture ...

这真的很难找到但是由于改装仍然处于测试阶段,它会发生很大变化并且缺少文档,希望这有帮助