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