form表单

Android使用MultipartEntityBuilder实现类似form表单提交方式的文件上传

元气小坏坏 提交于 2019-12-06 04:14:55
最近在做 Android 端文件上传,要求采用 form 表单的方式提交,项目使用的 afinal 框架有文件上传功能,但是始终无法与php写的服务端对接上,无法上传成功。读源码发现:afinal 使用了某大神写的 MultipartEntity.java 生成 form 表单内容,然而生成的内容格式不够标准,而且还存在诸多问题,如:首先将所有文件读入到内存,再生成字节流写入到 socket。那么问题来了:如果是几百MB的文件怎么办? 几番搜索,受到 这篇文章 (已被我转载, 但是示例代码已过期 ) 的启发 ,我辗转找到了 Apache 源码 httpcomponents-client-4.3.6-src.zip ,在一个示例里面发现了一个重要的组件 MultipartEntityBuilder, 可以生成 form 表单格式的 HttpEntity, 有了 HttpEntity, 无论你是什么 http 框架,应该都可以使用。 不知道怎么使用?like this: HttpPost httppost = new HttpPost(url); ... final HttpEntity entity = makeMultipartEntity(params, files); httppost.addHeader(entity.getContentType()); //httppost