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

北京网站建设设计公司泉州关键词排名seo

北京网站建设设计公司,泉州关键词排名seo,广东智慧团建系统入口,wordpress有多少网站下面以一个例子来讲解在项目中如何使用OKHttp来对本地图片做个最简单的上传功能,基本上无封装,只需要简单调用便可(对于OKHttp的引入不再单独做介绍)。 1:构建上传图片附带的参数(params) Map…

下面以一个例子来讲解在项目中如何使用OKHttp来对本地图片做个最简单的上传功能,基本上无封装,只需要简单调用便可(对于OKHttp的引入不再单独做介绍)。

1:构建上传图片附带的参数(params)

Map<String, Object> reqData = new HashMap<>();
RequestBody requestFile = RequestBody.create(MediaType.parse("multipart/form-data"), file);
MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), requestFile);

其中reqData中是需要传入的参数,如接口请求token,时间戳,版本号等。然后构建RequestBody,表示上传类型,这里以form表单形式提交,当然也可以以Json格式提交,只要和后台约定好便可。然后构建filePart,有单个图片文件和多个文件图片选项,多个文件也是封装在MultipartBody.Part中的,这里以单个文件为例。

2:第二步,把参数与图片数据封装到心情求体里。这里ReqData中便是传递需要的参数,这里对传递过来的参数重新取出以键值对方式构建。

MediaType MEDIA_TYPE_PNG = MediaType.parse("multipart/form-data");
MultipartBody multipartBody = new MultipartBody.Builder().setType(MEDIA_TYPE_PNG).addFormDataPart("token", reqData.get("token").toString()).addFormDataPart("ts", reqData.get("ts").toString()).addFormDataPart("rand", reqData.get("rand").toString()).addFormDataPart("platform", reqData.get("platform").toString()).addFormDataPart("version", reqData.get("version").toString()).addFormDataPart("source", "appimg").addPart(filePart).build();

3:发起请求,这里需要注意的有几点:

(1)把上述构建的请求体传到Request中,在OkHttpClient的配置中做简单配置参数。如请求连接时间,读写时间等。

(2)在Request中设置上传URL,就是需要上传的接口详细地址。

(3)在回调函数中接收返回的数据,注意,在回调函数中无论成功还是失败都是默认在子线程中,当我们需要操作UI时需要切换到主线程中,避免发生应用Crash

Request.Builder requestBuild = new Request.Builder();
Request request = requestBuild.url(UPLOAD_PHOTO_URL).post(multipartBody).build();
OkHttpClient okHttpClient = new OkHttpClient.Builder().connectTimeout(60, TimeUnit.SECONDS).readTimeout(60, TimeUnit.SECONDS).build();
okHttpClient.newCall(request).enqueue(new Callback() {@Overridepublic void onFailure(@NonNull Call call, @NonNull IOException e) {//返回失败的数据hideLoading();Log.e("onFailure img-->>", e.getMessage());}@Overridepublic void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {//返回成功的数据String newAvatar = response.body().string();Log.e("onResponse img-->>", newAvatar);hideLoading();imageUrl = newAvatar;locolPath = file.getAbsolutePath();//切换到主线程中去操作UIrunOnUiThread(new Runnable() {@Overridepublic void run() {//本地封装的图片加载工具类加载已上传成功的图片ImageUtil.loadLocalFile(XXActivity.this, iv_graph, file.getAbsolutePath());}});}
});
http://www.yayakq.cn/news/851802/

相关文章:

  • creative建网站平台wordpress 摄影
  • 网上提供免费主页空间的网站外链下载
  • 做天猫网站要多少钱商务网站专题页
  • 网站多网合一网站建设对公司的发展
  • 网站标题关键词用什么隔开松原做网站的公司
  • 钓鱼网站开发素材图库
  • 深圳北站设计者专业做网站技术
  • 做资讯类网站小广告多的网站
  • 邹城网站制作移动crm系统客户端
  • 网站域名品牌怎么写jquery网站底部导航效果
  • 丽江网站建设深圳做软件开发的公司
  • 网站推广的常用方法有哪些?威海营销型网站建设
  • 建网站简易软件网站设计服务表
  • 常州建站价格wap浏览器下载
  • 网易免费企业邮箱注册seo网络营销的技术
  • 四川专业网站建设费用廊坊电商网站建设
  • 做游戏ppt下载网站有哪些内容建设网站推广
  • 大理州建设局网站门户网有些电影网站是怎么做的
  • 网站建设嗟商文件软件开发服务方案
  • 华龙建设部网站查不到一般建站公司用什么cms
  • 苏州vr全景网站建设公司seo课培训
  • 网站建设kaituozu沈阳京科男科医院
  • 机关网站建设的请示网站建设服务器对比
  • 网站录入一个新产品的营销方案
  • 云南 旅游 网站建设win7 iis默认网站设置
  • 在中国怎么做国外网站cad制图培训
  • 石家庄建站源码wordpress访问网站很慢
  • 如何建立公司网站账号企业网阳江一中成绩查询
  • 想找个人建网站app扁平化设计网站模板
  • 付费网站搭建wordpress文章页面优化