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

做期货主要看哪几个财经网站网站开发项目合同书

做期货主要看哪几个财经网站,网站开发项目合同书,商标设计网私黛,wordpress更改路径场景&#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.yayakq.cn/news/541122/

相关文章:

  • 搭建什么网站能盈利怎样做影视网站
  • 个性化网站建设公司电话免费好用的企业邮箱
  • 做的不错的网站长沙制作公园仿竹护栏实体厂家
  • 分类信息网站如何优化世界500强排名
  • 深圳网站上线方案怎么做论坛的网站
  • 计算机网站建设与推广薛城区住房和城乡建设局网站
  • 广州专业网站制作哪家专业互联网技术应用学什么
  • 烟台品牌网站建设工作指令
  • 网站新增关键词大型flash网站
  • 合肥网站建设晨飞杭州网站建设文章
  • 30岁学网站开发快影
  • 网站建设精美模板下载网站逻辑结构
  • 网站建设与管理单招搜索引擎优化入门
  • wordpress sso珠海seo快速排名
  • 做袜子娃娃的网站net网站建设
  • 分类信息网站如何建设wordpress 手机端页面
  • 泸州工投建设集团有限公司网站上海黄页企业名录
  • 需要锦州网站建设外贸网站推广制作教程
  • 公司网站及微信公众号建设意义前端培训机构
  • 义乌做网站要多少钱sem推广托管公司
  • 阆中网站建设wordpress外贸模板下载
  • 网站开发公司电话meetsh网站建设
  • 做python题目的网站做电影网站用什么格式好
  • 网站仿制 个人没有企业邮箱怎么填写
  • 女生做网站编辑个人网站做什么内容
  • 购房者网站扶风做企业网站
  • 网站模糊设计电商是做什么的工作内容是什么
  • 网站建设尾款结算申请wordpress 一直崩溃
  • 北京网站搭建报价贵州讯玛网站建设
  • 世界500强企业seo快速排名软件品牌