5

当尝试使用 httpbuilder-ng apache 实现版本 0.16.1 通过 multipart/form-data 上传大型 zip 时,我得到

org.apache.http.ContentTooLongException:内容长度太长:109370 at org.apache.http.entity.mime.MultipartFormEntity.getContent(MultipartFormEntity.java:103) at groovyx.net.http.ApacheEncoders.multipart(ApacheEncoders.java :74)

没关系,因为 zip 相当大,没有理由在缓冲区和 ByteArray[ Input | 输出]流,问题是我如何实际将多部分发送到连接的输出流?我试图自定义编码器,但 ToServer 只公开了一种接受 InputStream 的方法,这对我来说真的不起作用

这是我正在做的一个片段

configure {
        request.uri = 'https://anypoint.mulesoft.com'
        request.contentType = JSON[0]
        request.encoder(MULTIPART_FORMDATA[0], ApacheEncoders.&multipart)
    }
    .post {
        request.uri.path = '/cloudhub/api/v2/applications'
        request.headers['X-ANYPNT-ENV-ID'] = eid
        request.contentType = MULTIPART_FORMDATA[0]
        request.body = multipart {
            part('appInfoJson', JSON[0], '{"domain":"myDomain"}')
            part('autoStart', 'true')
            part(
                    'file',
                    'myLargeZip.zip',
                    BINARY[0], // or 'application/zip'
                    new File('/parent', 'myLargeZip.zip')
            )
        }
    }
4

0 回答 0