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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值