一、客户端类说明
1.客户端类说明
可实现一次 Socket 连接多次不断的发送 Http 请求,即 HTTP 协议的 keep-alive 模式。
类路径:
org.voovan.http.client.HttpClient
方法说明:
1.构造函数
public HttpClient(String urlString)
public HttpClient(String urlString,int timeOut)
public HttpClient(String urlString,String charset,int timeOut)
public HttpClient(String urlString,String charset)
- 构造一个 HttpClient 对象。
urlString
: 请求的 URL 地址。timeOut
: 请求超时时间。charset
: 请求使用的字符集,默认 UTF-8。
2.HTTP方法设置
public void setMethod(String method)
- 为当前 HTTP 设置请求方法,如:
GET
、POST
、HEAD
、CONNECT
、TRACE
、DELETE
等。 method
: 方法字符串。
3.HTTP Headder设置
public Header getHeader()
返回值
: HTTP 请求头。
4.获取请求Cookies集合
public List<Cookie> getCookies()
返回值
: 获取HTTPCookies集合。
5.判断是否处于连接状态
public synchronized boolean isConnect()
返回值
: true:连接,false:未连接。
6.设置HTTP请求参数
public HttpClient putParameters(String name,Object value)
- 为HTTP设置请求参数,这里设置的参数会根据
GET
/POST
(但不包括multipart/form-data请求) 等请求的规范自动附加到请求中。 name
: 参数名。value
: 参数值。
7.添加HTTP multipart请求
public void addPart(Part part)
- 类似Form 的
Actiong="POST" enctype="multipart/form-data"
提交的请求。 part
:org.voovan.http.message.packet.Part
对象封装了HTTP multipart请求,Part对象的有一个方便的构造函数:
public Part(String name,String value)
name
: 参数名。value
: 参数值。
8.获取HTTP请求参数
public Map<String,Object> getParameters()
- 获取 HTTP 请求的所有参数集合。
9.设置HTTP请求内容
public HttpClient setData(byte[] data)
public HttpClient setData(String data)
public HttpClient setData(String data, String charset)
- 为HTTP设置请求内容。
data
: 请求内容数据。charset
: 请求内容使用的字符集。
10.HTTP请求发送
public Response Send() throws Exception
public Response Send(String urlString) throws Exception
- 发送HTTP请求,默认访问域名根。
urlString
: 相对于主机的相对 URL 路径,用于一次连接主机多次请求操作. 例如:访问的网址是http://www.baid.com/s
,那么构造 HttpClient 时使用http://www.baid.com/
作为参数,调用 send 时使用/s
作为参数。返回值
: Response对象。
11.HTTP读取流报文内容
public ByteBuffer loadStream() throws IOException
- 读取 HTTP响应中的流报文内容,例如 Docker 的 exec 和 log 命令,
loadStream
方法会返回当前缓冲区内的所有字节。
12.HTTP上传文件
public void uploadFile(String name, File file)
- 发送HTTP请求,上传指定文件。
name
: 被上传文件对应的请求参数名.file
: 被上传文件的文件对象。