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

移动端 pc网站开发昆明做网站的公司

移动端 pc网站开发,昆明做网站的公司,红木家具网站建设总体规划,电商平台都有哪些下面以一个例子来讲解在项目中如何使用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/200679/

相关文章:

  • 湖北建设厅举报网站用ps做美食网站
  • 做哪些网站比较好的自己做网站运营
  • 福建泉州做网站公司赣州南康网站建设
  • 网站网页制作图片素材企业网站seo从哪开始
  • 六安市网站建设wordpress 卢晓松
  • 跑腿个人网站怎么做深圳百度seo关键词排名
  • 国外网站建设什么价格低失信人信息查询
  • 分类信息系统网站模板纯静态企业网站模板免费下载
  • 网站专题二级页怎么做百度问答平台入口
  • 网页如何发布到服务器上西安seo网站关键词优化
  • 建设网站用什么服务器汕尾英文网站建设
  • wordpress模板 站长wordpress舰娘
  • 珠海建网站设计网站空间怎么续费
  • 织梦如何做响应式手机网站长沙编程培训学校哪家好
  • 整合营销网站建设国外手机网站模板
  • 做网站的成本是什么wordpress主题去除文章作者
  • 莱州网站建设方案wordpress在线教育系统
  • 斐讯k3做网站wordpress 映射 frp 群晖
  • 网站上动画视频怎么做的深圳建西站
  • 建立手机网站企业计划书模板范文
  • 网站建设 不需要见面建网站不做广告怎么赚钱
  • 建设银行春招报名网站没有公网ip做网站
  • 网站建设现在主要做些什么个人适合做的网站
  • 网站起名字大全网络营销推广为什么效果不好
  • 东莞网站建设网站推广价钱wordpress一句话木马
  • wordpress 百度站长网站建设 云南
  • wordpress企业网站教程中国电子加工网
  • 大型网站 网站建设怎么做网站的二维码
  • 网站开发的职业目标做网站营销公司有哪些
  • 废品回收网站怎么做网站优化印刷外贸好做吗