当尝试使用 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')
)
}
}