/* (单一类型)
*
* RequestBody 是抽象类(上面的FormBody是他的子类)
* 这个类主要提供了一系列静态重载方法create 来创建RequestBody 对象
*
* create重载方法:两个参数
* public static RequestBody create(MediaType contentType, String content)
*
* public static RequestBody create(final MediaType contentType, final ByteString content)
*
* public static RequestBody create(final MediaType contentType, final byte[] content)
*
* public static RequestBody create(final MediaType contentType, final File file)
*
* MediaType 媒体类型
*
* */
public void requestBody(){
MediaType jsonType = MediaType.parse("application/json; charset=utf-8");// 数据类型为json
String json = "{\"username\":\"lisi\",\"nickname\":\"李四\"}";//json数据
RequestBody requestBody = RequestBody.create(jsonType,json);
// 如果想吧发送的类型定义为File 则
// 1 MediaType fileType = MediaType.parse("File/*");
//2 在搞一个file对象 两个作为参数传入 create即可
}
/*请求是上传的不同类型文件
MultipartBody
* public final class MultipartBody extends RequestBody
*
*
*
* Builder()为MultipartBody的内部类 public static final class Builder
* addFormDataPart 两个重载方法 两个和三个参数(Builder 的方法支持链式调用)
*
* build()返回MultipartBody对象
* */
public void mulType(){
File file = new File(getCacheDir().getAbsoluteFile().toString()+"a.txt");
MultipartBody multipartBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("name","Tom")
//参数 上传的 key 文件名 RequestBody类型文件
.addFormDataPart("file",file.getName(),RequestBody.create(MediaType.parse("file/*"),file))
.build();
}
Okhttp重拾1
参考自
网友评论