And*_*rey 1 java apache http multipart
我正在尝试使用Apache HttpAsyncClient库上传一个260k图像文件,作为多部分表单的一部分。
我以这种方式创建表单:
val multipartEntityBuilder = new MultipartEntityBuilder
multipartEntityBuilder.addBinaryBody("file", file)
val multipartEntity = multipartEntityBuilder.build()
Run Code Online (Sandbox Code Playgroud)
然后我基本上是因为库源代码中的这一行而在执行请求时收到ContentTooLongException:https : //github.com/apache/httpclient/blob/4.5.3/httpmime/src/main/java/org/apache/ http / entity / mime / MultipartFormEntity.java#L102
我进行了很多搜索,但没有找到任何解释为什么代码中存在对contentLength的限制。也许有人可以解释吗?我的第二个问题:对大于25 kb的文件进行上传请求的正确方法是什么?
谢谢!
找到了解决方案:在文件上创建inputStream并用BufferedHttpEntity包装多部分实体,然后将此缓冲的实体传递给请求:
val multipartEntityBuilder = MultipartEntityBuilder.create()
multipartEntityBuilder.addBinaryBody("file", new FileInputStream(file), ContentType.DEFAULT_BINARY, name)
val multipartEntity = multipartEntityBuilder.build()
val entity = new BufferedHttpEntity(multipartEntity)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
692 次 |
最近记录: |