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步是异步请求,关于同步请求和异步请求的区别请看下篇文章

  • 相关阅读:
    【题解】P3388 【模板】割点(割顶)
    【题解】T156527 直角三角形
    【题解】T156526 各数字之和
    【题解】P5318 【深基18.例3】查找文献
    数据结构:邻接表
    【题解】P3387 【模板】缩点
    全网最最详细!一文讲懂Tarjan算法求强连通分量&缩点
    vue组件间通信
    vue实现头像上传
    解读JavaScript中的Hoisting机制(js变量声明提升机制)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302508.html
Copyright © 2011-2022 走看看