zoukankan      html  css  js  c++  java
  • android 使用OkHttpClient上传文件到服务器端

     1:创建一个OkHttpClient(发起请求的客户端)

            OkHttpClient.Builder builder = new OkHttpClient.Builder();//首先拿到创建者
            builder.connectTimeout(30, TimeUnit.SECONDS);
            builder.readTimeout(30, TimeUnit.SECONDS);
            OkHttpClient okHttpClient = builder.build();//由创建者创建OkHttpClient

    2:创建一个RequestBody(请求体:用于存放文件对象和别的参数)

           MultipartBody.Builder builder = new MultipartBody.Builder();//首先拿到创建者

           builder .setType(MediaType.parse("multipart/form-data"));//设置请求体类型
           File file = new File(文件路径);
           String fileType = getMimeType(file.getName());//根据文件的后缀名,获得文件类型
           builder.addFormDataPart("file",file.getName(),RequestBody.create(MediaType.parse(fileType), file));
           builder.addFormDataPart("description", 其他参数); 
           RequestBody requestBody = builder.build(); //由创建者创建RequestBody

    3:创建一个Request(请求对象:用于存放请求地址url和请求体RequestBody)

            Request.Builder builder = new Request.Builder();//首先拿到创建者
            builder.url(url)                                                       //设置请求地址
                    .method("POST", requestBody);               //设置requestBody

            //也可以这样写 :builder.url(url).post(requestBody)

          Request request = builder.build();//由创建者创建OkHttpClient

    4:创建Call(根据OkHttpClient和request创建call,call用于调用函数以发送请求)

         Call call = okHttpClient.newCall(request);

    5:用call调用函数以发送请求

    call.enqueue(失败的回调函数,成功的回调函数);

    注意:第5步是异步请求,关于同步请求和异步请求的区别请看下篇文章

  • 相关阅读:
    npm教程2
    02.RIP——CCNP学习笔记
    01.静态路由——CCNP学习笔记
    The 10th SWJTU ACM Online Tutorial
    visual studio 2005 常用按键
    Python垃圾回收机制
    私人网盘系统2.0—全部升级为layUI+PHP(持续更新中)
    Layui框架+PHP打造个人简易版网盘系统
    翻译app的开发全过程---编码+打包+上架
    值得认真学习的6 个 JavaScript 框架
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302508.html
Copyright © 2011-2022 走看看