java – HttpClient发布进度和MultipartEntityBuilder
发布时间:2020-12-15 02:52:31 所属栏目:Java 来源:网络整理
导读:我尝试使用HttpClient 4.3.3和MultipartEntityBuilder上传文件时实现进度 所以实际上我用以下代码执行一个post请求 HttpClientBuilder builder = HttpClientBuilder.create();HttpClient httpClient = builder.build();HttpPost httpPost = new HttpPost(upl
我尝试使用HttpClient 4.3.3和MultipartEntityBuilder上传文件时实现进度
所以实际上我用以下代码执行一个post请求 HttpClientBuilder builder = HttpClientBuilder.create(); HttpClient httpClient = builder.build(); HttpPost httpPost = new HttpPost(uploadUrl); MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create(); entityBuilder.addPart("filea",new FileBody(filea)); entityBuilder.addPart("fileb",new FileBody(fileb)); final HttpEntity entity = entityBuilder.build(); httpPost.setEntity(entity); HttpResponse response = httpClient.execute(httpPost); 知道如何从上传中获得实际进展吗?我搜索了很多 – 但是这些例子是针对android而不是简单的java或者旧版本的HttpClient而且对我来说不起作用…… 解决方法
我刚刚找到了解决方案:
您需要一个HttpEntityWrapper来计算已处理的字节并进行回调. ProgressHttpEntityWrapper.ProgressCallback progressCallback = new ProgressHttpEntityWrapper.ProgressCallback() { @Override public void progress(float progress) { //Use the progress } } httpPost.setEntity(new ProgressHttpEntityWrapper(entityBuilder.build(),progressCallback)); 这是ProgressHttpEntityWrapper:https://github.com/x2on/gradle-hockeyapp-plugin/blob/master/src/main/groovy/de/felixschulze/gradle/util/ProgressHttpEntityWrapper.groovy的完整代码 该解决方案的主要来源:https://stackoverflow.com/a/7319110/268795 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Java Web学习之MySQL在项目中的使用方法
- java – 扩展server_name(SNI扩展名)不是用jdk1.8.0发送的,
- java – apache-tomcat 7.0不解压.war?
- Java:使用父类方法来访问子类变量
- java – 更改ExpandableListView中指示器的位置导致问题
- java – 如何获取paint / paintComponent生成的图像?
- java 基础 01 变量和注释、数据类型
- 如何正确使用FindBugs的@CheckForNull,@ Nonull和@Nullable
- javafx-8 – 从另一个类启动JavaFX应用程序
- Java Hindi语言环境支持?