当前位置: 首页 > news >正文

安阳做网站引流推广网站平台

安阳做网站,引流推广网站平台,公司网站404,一条龙网站建设场景&#xff1a;后端上传文件接口只支持单个文件上传&#xff0c;而业务需求一次性上传多个图片&#xff0c;因此需要多个上传任务并发进行&#xff0c;拿到所有的返回结果后&#xff0c;才能进行下一个流程。 1、使用Java并发工具 private List<Response<JSONObject>…

场景:后端上传文件接口只支持单个文件上传,而业务需求一次性上传多个图片,因此需要多个上传任务并发进行,拿到所有的返回结果后,才能进行下一个流程。

在这里插入图片描述

1、使用Java并发工具

private List<Response<JSONObject>> responses = new ArrayList<>();private int requestCount = 0;private void submitTest() {for (LocalMedia localMedia : mSelectList) {uploadImage(new File(localMedia.getPath()));}}private void uploadImage(File file) {JSONObject data = new JSONObject();data.put("file",file);RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);MultipartBody.Part part = MultipartBody.Part.createFormData("file", file.getName(), imageBody);HttpApi api= RetrofitManager.initRetrofit(RetrofitManager.url_fms).create(HttpApi.class);Call<JSONObject> resultcall = api.up_file("e2e5198e198c78cb59cebfadc592aa45", part);resultcall.enqueue(new Callback<JSONObject>() {//请求成功时回调@Overridepublic void onResponse(Call<JSONObject> call, Response<JSONObject> response) {if(response.isSuccessful()){JSONObject json = response.body();if(json.getBoolean("flag")){responses.add(response);handleResponse();}else{XToastUtils.error(json.getString("message"));}}else {XToastUtils.error(response.message()+"");}}//请求失败时候的回调@Overridepublic void onFailure(Call<JSONObject> call, Throwable throwable) {XToastUtils.error(throwable.getMessage()+"");}});}private synchronized void handleResponse() {requestCount++;if (requestCount == mSelectList.size()) {// 所有请求都已完成,可以在这里处理合并的结果handleCombinedResponse(responses);}}/*** 处理合并的结果*/private void handleCombinedResponse(List<Response<JSONObject>> responses) {List<String> result = new ArrayList<>();for (Response<JSONObject> response : responses){if(response.isSuccessful()){JSONObject json = response.body();if(json.getBoolean("flag")){XToastUtils.success(json.getString("message"));result.add(json.getString("data"));}else{XToastUtils.error(json.getString("message"));}}else {XToastUtils.error(response.message()+"");}}System.out.println(result);}

以上使用了synchronized关键字来确保在多线程环境中handleResponse()方法能够正确地计数并处理响应。

运行结果:
在这里插入图片描述

2.使用CompletableFuture来实现

public String performParallelRequests() {List<CompletableFuture<String>> futures = new ArrayList<>();for (LocalMedia localMedia : mSelectList) {File file = new File(localMedia.getPath());CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {try {// 执行第一个请求JSONObject data = new JSONObject();data.put("file",file);RequestBody imageBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);MultipartBody.Part part = MultipartBody.Part.createFormData("file", file.getName(), imageBody);HttpApi api= RetrofitManager.initRetrofit(RetrofitManager.url_fms).create(HttpApi.class);Call<JSONObject> resultcall = api.up_file("e2e5198e198c78cb59cebfadc592aa45", part);Response<JSONObject> execute = resultcall.execute();if(execute.isSuccessful()){return execute.body().getString("data");}} catch (IOException e) {e.printStackTrace();}return null;});futures.add(future);}List<String> results = new ArrayList<>();CompletableFuture<Void> allOf = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));try {allOf.get();for (CompletableFuture<String> future : futures) {String result = future.get();results.add(result);System.out.println(result);}System.out.println("results---------"+results);} catch (ExecutionException e) {throw new RuntimeException(e);} catch (InterruptedException e) {throw new RuntimeException(e);}return null;}

运行结果:
在这里插入图片描述

http://www.shuangfujiaoyu.com/news/61841.html

相关文章:

  • 做黄金的经常看什么网站相亲网站排名前十名
  • 宁波网站关键词优化公司百度一下点击搜索
  • 百度竞价广告推广优化营商环境的金句
  • 网站优化怎么样宁波seo关键词优化报价
  • 网站美工费用seo百度关键词优化
  • 荣成信用建设官方网站高报师培训机构排名
  • 教育网站建设毕业设计说明书页面设计
  • 用asp做网站流程微信小程序开发工具
  • 网站手机自动跳转app拉新平台
  • 宇锋网站建设百度导航
  • 织梦能做视频网站吗关键词排名推广软件
  • 网站一般做多大的一键生成个人网站
  • 马鞍山网站建设百度推广官网网站
  • 建站哪家好联系兴田德润百度竞价排名算法
  • 一个服务器可以做多个网站吗2023年8月份新冠症状
  • 商务网站开发实验蔡甸seo排名公司
  • 北京市工程信息网seo网站运营
  • 做设计_素材网站有哪百度极速版下载安装最新版
  • 又拍网站怎么做楚雄今日头条新闻
  • 天津网站在哪里建设付费推广
  • 广州企业网站模板建站软文代发平台
  • 网站建设人员分工表北京专业seo公司
  • 网站开发需要掌握的知识怎样做网站卖自己的产品
  • 如何个网站做二维码企业建站公司
  • 做公司网站的好处重庆网站到首页排名
  • 大良网站智能推广价格广告优化师工作内容
  • tag 网站备案线下引流推广方法
  • 做网站要学什么软件好广告开户
  • 星巴克网站建设seo服务商排名
  • 自我建设外贸网站海外seo网站推广