接下来是对RequestBody抽象类的分析,因为内部实现很简单,所以这里贴出加注释的源码,供大家阅读。对于RequestBody抽象类,我们只需要细看最后两个有具体实现的方法。
RequestBody类主要做了获得请求体的数据类型、获得请求体的数据长度、将请求体写入到流中这三件事。
我们看一下它的源码。
1、两个抽象方法
//获取请求体的类型
public abstract MediaType contentType();
//将请求正文写到指定的输出流中
public abstract void writeTo(BufferedSink sink) throws IOException;
因为正文内容的类型是由用户定义的,所以这里将它写成抽象的,又因为正文内容的类型不同,影响到将正文写到指定输出流的具体实现,所以将writeTo(……)写成抽象,让用户自己实现。
2、获取请求正文的内容长度
//获取请求体的数据长度
public long contentLength() throws IOExc