public class HttpRequest extends HttpBase<HttpRequest>
限定符和类型 | 字段和说明 |
---|---|
protected static java.net.CookieManager |
cookieManager
Cookie管理
|
static int |
TIMEOUT_DEFAULT
默认超时时长,-1表示默认超时时长
|
构造器和说明 |
---|
HttpRequest(java.lang.String url)
构造
|
限定符和类型 | 方法和说明 |
---|---|
HttpRequest |
basicAuth(java.lang.String username,
java.lang.String password)
简单验证
|
HttpRequest |
body(byte[] bodyBytes)
设置主体字节码
需在此方法调用前使用charset方法设置编码,否则使用默认编码UTF-8 |
HttpRequest |
body(JSON json)
设置JSON内容主体
设置默认的Content-Type为 application/json 需在此方法调用前使用charset方法设置编码,否则使用默认编码UTF-8 |
HttpRequest |
body(java.lang.String body)
设置内容主体
|
HttpRequest |
body(java.lang.String body,
java.lang.String contentType)
设置内容主体
请求体body参数支持两种类型: 1. |
static void |
closeCookie()
关闭Cookie
|
java.lang.String |
contentLength()
获取内容长度
|
HttpRequest |
contentLength(int value)
设置内容长度
|
HttpRequest |
contentType(java.lang.String contentType)
设置contentType
|
HttpRequest |
cookie(java.net.HttpCookie... cookies)
设置Cookie
自定义Cookie后会覆盖Hutool的默认Cookie行为 |
HttpRequest |
cookie(java.lang.String cookie)
设置Cookie
自定义Cookie后会覆盖Hutool的默认Cookie行为 |
static HttpRequest |
delete(java.lang.String url)
DELETE请求
|
HttpRequest |
disableCache()
禁用缓存
|
HttpRequest |
disableCookie()
禁用默认Cookie行为,此方法调用后会将Cookie置为空。
|
HttpRequest |
enableDefaultCookie()
打开默认的Cookie行为(自动回填服务器传回的Cookie)
|
HttpResponse |
execute()
执行Reuqest请求
|
HttpResponse |
execute(boolean isAsync)
执行Reuqest请求
|
HttpResponse |
executeAsync()
异步请求
异步请求后获取的 HttpResponse 为异步模式,此时此对象持有Http链接(http链接并不会关闭),直调用获取内容方法为止 |
java.util.Map<java.lang.String,Resource> |
fileForm()
获取文件表单数据
|
java.util.Map<java.lang.String,java.lang.Object> |
form()
获取表单数据
|
HttpRequest |
form(java.util.Map<java.lang.String,java.lang.Object> formMap)
设置map类型表单数据
|
HttpRequest |
form(java.lang.String name,
byte[] fileBytes,
java.lang.String fileName)
文件byte[]表单项
一旦有文件加入,表单变为multipart/form-data |
HttpRequest |
form(java.lang.String name,
java.io.File... files)
文件表单项
一旦有文件加入,表单变为multipart/form-data |
HttpRequest |
form(java.lang.String name,
java.io.File file)
文件表单项
一旦有文件加入,表单变为multipart/form-data |
HttpRequest |
form(java.lang.String name,
java.io.File file,
java.lang.String fileName)
文件表单项
一旦有文件加入,表单变为multipart/form-data |
HttpRequest |
form(java.lang.String name,
java.lang.Object value)
设置表单数据
|
HttpRequest |
form(java.lang.String name,
java.lang.Object value,
java.lang.Object... parameters)
设置表单数据
|
HttpRequest |
form(java.lang.String name,
Resource resource)
文件表单项
一旦有文件加入,表单变为multipart/form-data |
static HttpRequest |
get(java.lang.String url)
GET请求
|
HttpConnection |
getConnection()
|
static java.net.CookieManager |
getCookieManager()
获取Cookie管理器,用于自定义Cookie管理
|
Method |
getMethod()
获取Http请求方法
|
java.lang.String |
getUrl()
获取请求URL
|
static HttpRequest |
head(java.lang.String url)
HEAD请求
|
boolean |
isKeepAlive() |
HttpRequest |
keepAlive(boolean isKeepAlive)
设置是否为长连接
|
HttpRequest |
method(Method method)
设置请求方法
|
static HttpRequest |
options(java.lang.String url)
OPTIONS请求
|
static HttpRequest |
patch(java.lang.String url)
PATCH请求
|
static HttpRequest |
post(java.lang.String url)
POST请求
|
static HttpRequest |
put(java.lang.String url)
PUT请求
|
HttpRequest |
setConnectionTimeout(int milliseconds)
设置连接超时,单位:毫秒
|
HttpRequest |
setEncodeUrlParams(boolean isEncodeUrlParams)
是否对URL中的参数进行编码
|
HttpRequest |
setFollowRedirects(boolean isFollowRedirects)
设置是否打开重定向,如果打开默认重定向次数为2
此方法效果与 setMaxRedirectCount(int) 一致 |
HttpRequest |
setHostnameVerifier(javax.net.ssl.HostnameVerifier hostnameVerifier)
设置域名验证器
只针对HTTPS请求,如果不设置,不做验证,所有域名被信任 |
HttpRequest |
setMaxRedirectCount(int maxRedirectCount)
设置最大重定向次数
如果次数小于1则表示不重定向,大于等于1表示打开重定向 |
HttpRequest |
setMethod(Method method)
设置请求方法
|
HttpRequest |
setProxy(java.net.Proxy proxy)
设置代理
|
HttpRequest |
setReadTimeout(int milliseconds)
设置连接超时,单位:毫秒
|
HttpRequest |
setRest(boolean isRest)
设置是否rest模式
|
HttpRequest |
setSSLProtocol(java.lang.String protocol)
设置HTTPS安全连接协议,只针对HTTPS请求,可以使用的协议包括:
1. |
HttpRequest |
setSSLSocketFactory(javax.net.ssl.SSLSocketFactory ssf)
设置SSLSocketFactory
只针对HTTPS请求,如果不设置,使用默认的SSLSocketFactory 默认SSLSocketFactory为:SSLSocketFactoryBuilder.create().build(); |
HttpRequest |
setUrl(java.lang.String url)
设置URL
|
HttpRequest |
setUrlHandler(java.net.URLStreamHandler urlHandler)
设置
URLStreamHandler
部分环境下需要单独设置此项,例如当 WebLogic Server 实例充当 SSL 客户端角色(它会尝试通过 SSL 连接到其他服务器或应用程序)时,它会验证 SSL 服务器在数字证书中返回的主机名是否与用于连接 SSL 服务器的 URL 主机名相匹配。 |
HttpRequest |
timeout(int milliseconds)
设置超时,单位:毫秒
超时包括: 1. |
static HttpRequest |
trace(java.lang.String url)
TRACE请求
|
addHeaders, charset, charset, charset, header, header, header, header, header, header, header, header, headerList, headers, httpVersion, httpVersion, removeHeader, removeHeader, toString
public static final int TIMEOUT_DEFAULT
protected static java.net.CookieManager cookieManager
public static java.net.CookieManager getCookieManager()
CookieManager
public static void closeCookie()
public static HttpRequest post(java.lang.String url)
url
- URLpublic static HttpRequest get(java.lang.String url)
url
- URLpublic static HttpRequest head(java.lang.String url)
url
- URLpublic static HttpRequest options(java.lang.String url)
url
- URLpublic static HttpRequest put(java.lang.String url)
url
- URLpublic static HttpRequest patch(java.lang.String url)
url
- URLpublic static HttpRequest delete(java.lang.String url)
url
- URLpublic static HttpRequest trace(java.lang.String url)
url
- URLpublic java.lang.String getUrl()
public HttpRequest setUrl(java.lang.String url)
url
- url字符串public HttpRequest setUrlHandler(java.net.URLStreamHandler urlHandler)
URLStreamHandler
部分环境下需要单独设置此项,例如当 WebLogic Server 实例充当 SSL 客户端角色(它会尝试通过 SSL 连接到其他服务器或应用程序)时,
它会验证 SSL 服务器在数字证书中返回的主机名是否与用于连接 SSL 服务器的 URL 主机名相匹配。如果主机名不匹配,则删除此连接。
因此weblogic不支持https的sni协议的主机名验证,此时需要将此值设置为sun.net.www.protocol.https.Handler对象。
相关issue见:https://gitee.com/loolly/hutool/issues/IMD1X
urlHandler
- url字符串public HttpRequest setMethod(Method method)
method
- HTTP方法method(Method)
public HttpConnection getConnection()
HttpConnection
public HttpRequest method(Method method)
method
- HTTP方法public HttpRequest contentType(java.lang.String contentType)
contentType
- contentTypepublic HttpRequest keepAlive(boolean isKeepAlive)
isKeepAlive
- 是否长连接public boolean isKeepAlive()
public java.lang.String contentLength()
public HttpRequest contentLength(int value)
value
- 长度public HttpRequest cookie(java.net.HttpCookie... cookies)
cookies
- Cookie值数组,如果为null
则设置无效,使用默认Cookie行为public HttpRequest cookie(java.lang.String cookie)
cookie
- Cookie值,如果为null
则设置无效,使用默认Cookie行为public HttpRequest disableCookie()
cookie(String)
方法自定义Cookie。enableDefaultCookie()
public HttpRequest enableDefaultCookie()
public HttpRequest form(java.lang.String name, java.lang.Object value)
name
- 名value
- 值public HttpRequest form(java.lang.String name, java.lang.Object value, java.lang.Object... parameters)
name
- 名value
- 值parameters
- 参数对,奇数为名,偶数为值public HttpRequest form(java.util.Map<java.lang.String,java.lang.Object> formMap)
formMap
- 表单内容public HttpRequest form(java.lang.String name, java.io.File... files)
name
- 名files
- 需要上传的文件public HttpRequest form(java.lang.String name, java.io.File file)
name
- 名file
- 需要上传的文件public HttpRequest form(java.lang.String name, java.io.File file, java.lang.String fileName)
name
- 名file
- 需要上传的文件fileName
- 文件名,为空使用文件默认的文件名public HttpRequest form(java.lang.String name, byte[] fileBytes, java.lang.String fileName)
name
- 名fileBytes
- 需要上传的文件fileName
- 文件名public HttpRequest form(java.lang.String name, Resource resource)
name
- 名resource
- 数据源,文件可以使用FileResource
包装使用public java.util.Map<java.lang.String,java.lang.Object> form()
public java.util.Map<java.lang.String,Resource> fileForm()
public HttpRequest body(java.lang.String body)
body
- 请求体public HttpRequest body(java.lang.String body, java.lang.String contentType)
1. 标准参数,例如 a=1&b=2 这种格式 2. Rest模式,此时body需要传入一个JSON或者XML字符串,Hutool会自动绑定其对应的Content-Type
body
- 请求体contentType
- 请求体类型,null
表示自动判断类型public HttpRequest body(JSON json)
json
- JSON请求体public HttpRequest body(byte[] bodyBytes)
bodyBytes
- 主体public HttpRequest timeout(int milliseconds)
1. 连接超时 2. 读取响应超时
milliseconds
- 超时毫秒数setConnectionTimeout(int)
,
setReadTimeout(int)
public HttpRequest setConnectionTimeout(int milliseconds)
milliseconds
- 超时毫秒数public HttpRequest setReadTimeout(int milliseconds)
milliseconds
- 超时毫秒数public HttpRequest disableCache()
public HttpRequest setEncodeUrlParams(boolean isEncodeUrlParams)
isEncodeUrlParams
- 是否对URL中的参数进行编码public HttpRequest setFollowRedirects(boolean isFollowRedirects)
setMaxRedirectCount(int)
一致isFollowRedirects
- 是否打开重定向public HttpRequest setMaxRedirectCount(int maxRedirectCount)
maxRedirectCount
- 最大重定向次数public HttpRequest setHostnameVerifier(javax.net.ssl.HostnameVerifier hostnameVerifier)
hostnameVerifier
- HostnameVerifierpublic HttpRequest setProxy(java.net.Proxy proxy)
proxy
- 代理 Proxy
public HttpRequest setSSLSocketFactory(javax.net.ssl.SSLSocketFactory ssf)
ssf
- SSLScketFactorypublic HttpRequest setSSLProtocol(java.lang.String protocol)
1. TLSv1.2 2. TLSv1.1 3. SSLv3 ...
protocol
- 协议SSLSocketFactoryBuilder
public HttpRequest setRest(boolean isRest)
isRest
- 是否rest模式public HttpResponse execute()
public HttpResponse executeAsync()
HttpResponse
为异步模式,此时此对象持有Http链接(http链接并不会关闭),直调用获取内容方法为止public HttpResponse execute(boolean isAsync)
isAsync
- 是否异步public HttpRequest basicAuth(java.lang.String username, java.lang.String password)
username
- 用户名password
- 密码Copyright © 2019. All rights reserved.