尝试使用httpbuilder-ng apache实现版本0.16.1通过multipart / form-data上传大型zip时,我得到了
org.apache.http.ContentTooLongException:内容长度太长:109370 在org.apache.http.entity.mime.MultipartFormEntity.getContent(MultipartFormEntity.java:103) 在groovyx.net.http.ApacheEncoders.multipart(ApacheEncoders.java:74)
这是好的,因为拉链是相当大的,并且没有理由在缓冲区和ByteArray [输入 | 输出]流中摆动它,< strong> 问题是我如何实际将多部分发送到连接的输出流? 我试图自定义编码器,但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')
)
}
}