public class HttpRequest extends HttpBase<HttpRequest>
body, charset, DEFAULT_CHARSET, headers, HTTP_1_0, HTTP_1_1, httpVersion
Constructor and Description |
---|
HttpRequest(String url)
Deprecated.
请使用
of(String) |
HttpRequest(UrlBuilder url)
构造
|
Modifier and Type | Method and Description |
---|---|
HttpRequest |
addInterceptor(HttpInterceptor<HttpRequest> interceptor)
设置拦截器,用于在请求前重新编辑请求
|
HttpRequest |
addRequestInterceptor(HttpInterceptor<HttpRequest> interceptor)
设置拦截器,用于在请求前重新编辑请求
|
HttpRequest |
addResponseInterceptor(HttpInterceptor<HttpResponse> interceptor)
设置拦截器,用于在请求前重新编辑请求
|
HttpRequest |
auth(String content)
验证,简单插入Authorization头
|
HttpRequest |
basicAuth(String username,
String password)
简单验证,生成的头信息类似于:
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
|
HttpRequest |
basicProxyAuth(String username,
String password)
简单代理验证,生成的头信息类似于:
Proxy-Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
|
HttpRequest |
bearerAuth(String token)
令牌验证,生成的头类似于:"Authorization: Bearer XXXXX",一般用于JWT
|
HttpRequest |
body(byte[] bodyBytes)
设置主体字节码
需在此方法调用前使用charset方法设置编码,否则使用默认编码UTF-8 |
HttpRequest |
body(Resource resource)
设置主体字节码
需在此方法调用前使用charset方法设置编码,否则使用默认编码UTF-8 |
HttpRequest |
body(String body)
设置内容主体
请求体body参数支持两种类型: 1. |
HttpRequest |
body(String body,
String contentType)
设置内容主体
请求体body参数支持两种类型: 1. |
static void |
closeCookie()
关闭Cookie
|
String |
contentLength()
获取内容长度
|
HttpRequest |
contentLength(int value)
设置内容长度
|
HttpRequest |
contentType(String contentType)
设置contentType
|
HttpRequest |
cookie(Collection<HttpCookie> cookies)
设置Cookie
自定义Cookie后会覆盖Hutool的默认Cookie行为 |
HttpRequest |
cookie(HttpCookie... cookies)
设置Cookie
自定义Cookie后会覆盖Hutool的默认Cookie行为 |
HttpRequest |
cookie(String cookie)
设置Cookie
自定义Cookie后会覆盖Hutool的默认Cookie行为 |
static HttpRequest |
delete(String url)
DELETE请求
|
HttpRequest |
disableCache()
禁用缓存
|
HttpRequest |
disableCookie()
禁用默认Cookie行为,此方法调用后会将Cookie置为空。
|
HttpRequest |
enableDefaultCookie()
打开默认的Cookie行为(自动回填服务器传回的Cookie)
|
HttpResponse |
execute()
执行Reuqest请求
|
HttpResponse |
execute(boolean isAsync)
执行Reuqest请求
|
HttpResponse |
executeAsync()
异步请求
异步请求后获取的 HttpResponse 为异步模式,执行完此方法后发送请求到服务器,但是并不立即读取响应内容。 |
Map<String,Resource> |
fileForm()
获取文件表单数据
|
Map<String,Object> |
form()
获取表单数据
|
HttpRequest |
form(Map<String,Object> formMap)
设置map类型表单数据
|
HttpRequest |
form(String name,
byte[] fileBytes,
String fileName)
文件byte[]表单项
一旦有文件加入,表单变为multipart/form-data |
HttpRequest |
form(String name,
File... files)
文件表单项
一旦有文件加入,表单变为multipart/form-data |
HttpRequest |
form(String name,
File file)
文件表单项
一旦有文件加入,表单变为multipart/form-data |
HttpRequest |
form(String name,
File file,
String fileName)
文件表单项
一旦有文件加入,表单变为multipart/form-data |
HttpRequest |
form(String name,
Object value)
设置表单数据
|
HttpRequest |
form(String name,
Object value,
Object... parameters)
设置表单数据
|
HttpRequest |
form(String name,
Resource resource)
文件表单项
一旦有文件加入,表单变为multipart/form-data |
HttpRequest |
formStr(Map<String,String> formMapStr)
设置map<String, String>类型表单数据
|
static HttpRequest |
get(String url)
GET请求
|
HttpConnection |
getConnection()
|
static CookieManager |
getCookieManager()
获取Cookie管理器,用于自定义Cookie管理
|
Method |
getMethod()
获取Http请求方法
|
String |
getUrl()
获取请求URL
|
static HttpRequest |
head(String url)
HEAD请求
|
boolean |
isKeepAlive() |
HttpRequest |
keepAlive(boolean isKeepAlive)
设置是否为长连接
|
HttpRequest |
method(Method method)
设置请求方法
|
static HttpRequest |
of(String url)
构建一个HTTP请求
对于传入的URL,可以自定义是否解码已经编码的内容,设置见 HttpGlobalConfig.setDecodeUrl(boolean) 在构建Http请求时,用户传入的URL可能有编码后和未编码的内容混合在一起,如果 HttpGlobalConfig.isDecodeUrl() 为true ,则会统一解码编码后的参数,按照RFC3986规范,在发送请求时,全部编码之。 |
static HttpRequest |
of(String url,
Charset charset)
构建一个HTTP请求
对于传入的URL,可以自定义是否解码已经编码的内容。 |
static HttpRequest |
of(UrlBuilder url)
构建一个HTTP请求
|
static HttpRequest |
options(String url)
OPTIONS请求
|
static HttpRequest |
patch(String url)
PATCH请求
|
static HttpRequest |
post(String url)
POST请求
|
HttpRequest |
proxyAuth(String content)
验证,简单插入Authorization头
|
static HttpRequest |
put(String url)
PUT请求
|
HttpRequest |
setChunkedStreamingMode(int blockSize)
采用流方式上传数据,无需本地缓存数据。
|
HttpRequest |
setConfig(HttpConfig config)
将新的配置加入
注意加入的配置可能被修改 |
HttpRequest |
setConnectionTimeout(int milliseconds)
设置连接超时,单位:毫秒
|
static void |
setCookieManager(CookieManager customCookieManager)
|
HttpRequest |
setFixedContentLength(long contentLength)
设置固定长度的流模式,会设置HTTP请求头中的Content-Length字段,告知服务器整个请求体的精确字节大小。
|
HttpRequest |
setFollowRedirects(boolean isFollowRedirects)
设置是否打开重定向,如果打开默认重定向次数为2
此方法效果与 setMaxRedirectCount(int) 一致
需要注意的是,当设置为true 时,如果全局重定向次数非0,直接复用,否则设置默认2次。 |
HttpRequest |
setFollowRedirectsCookie(boolean followRedirectsCookie)
自动重定向时是否处理cookie
|
static void |
setGlobalTimeout(int customTimeout)
设置全局默认的连接和读取超时时长
|
HttpRequest |
setHostnameVerifier(HostnameVerifier hostnameVerifier)
设置域名验证器
只针对HTTPS请求,如果不设置,不做验证,所有域名被信任 |
HttpRequest |
setHttpProxy(String host,
int port)
设置Http代理
|
HttpRequest |
setMaxRedirectCount(int maxRedirectCount)
设置最大重定向次数
如果次数小于1则表示不重定向,大于等于1表示打开重定向 |
HttpRequest |
setMethod(Method method)
设置请求方法
|
HttpRequest |
setProxy(Proxy proxy)
设置代理
|
HttpRequest |
setReadTimeout(int milliseconds)
设置连接超时,单位:毫秒
|
HttpRequest |
setRest(boolean isRest)
设置是否rest模式
rest模式下get请求不会把参数附加到URL之后 |
HttpRequest |
setSSLProtocol(String protocol)
设置HTTPS安全连接协议,只针对HTTPS请求,可以使用的协议包括:
此方法调用后 setSSLSocketFactory(SSLSocketFactory) 将被覆盖。 |
HttpRequest |
setSSLSocketFactory(SSLSocketFactory ssf)
设置SSLSocketFactory
只针对HTTPS请求,如果不设置,使用默认的SSLSocketFactory 默认SSLSocketFactory为:SSLSocketFactoryBuilder.create().build(); |
HttpRequest |
setUrl(String url)
设置URL
|
HttpRequest |
setUrl(UrlBuilder urlBuilder)
设置URL
|
HttpRequest |
setUrlHandler(URLStreamHandler urlHandler)
设置
URLStreamHandler
部分环境下需要单独设置此项,例如当 WebLogic Server 实例充当 SSL 客户端角色(它会尝试通过 SSL 连接到其他服务器或应用程序)时,它会验证 SSL 服务器在数字证书中返回的主机名是否与用于连接 SSL 服务器的 URL 主机名相匹配。 |
void |
then(Consumer<HttpResponse> consumer)
执行Request请求后,对响应内容后续处理
处理结束后关闭连接 |
<T> T |
thenFunction(Function<HttpResponse,T> function)
执行Request请求后,对响应内容后续处理
处理结束后关闭连接 |
HttpRequest |
timeout(int milliseconds)
设置超时,单位:毫秒
超时包括: 1. |
String |
toString() |
static HttpRequest |
trace(String url)
TRACE请求
|
addHeaders, bodyBytes, charset, charset, charset, clearHeaders, header, header, header, header, header, header, header, header, headerList, headerMap, headers, httpVersion, httpVersion, removeHeader, removeHeader
@Deprecated public HttpRequest(String url)
of(String)
url
- URLpublic HttpRequest(UrlBuilder url)
url
- UrlBuilder
public static HttpRequest post(String url)
url
- URLpublic static HttpRequest get(String url)
url
- URLpublic static HttpRequest head(String url)
url
- URLpublic static HttpRequest options(String url)
url
- URLpublic static HttpRequest put(String url)
url
- URLpublic static HttpRequest patch(String url)
url
- URLpublic static HttpRequest delete(String url)
url
- URLpublic static HttpRequest trace(String url)
url
- URLpublic static HttpRequest of(String url)
HttpGlobalConfig.setDecodeUrl(boolean)
HttpGlobalConfig.isDecodeUrl()
为true
,则会统一解码编码后的参数,false
,则不会解码已经编码的内容,在请求时只编码需要编码的部分。url
- URL链接,默认自动编码URL中的参数等信息public static HttpRequest of(String url, Charset charset)
null
,则会统一解码编码后的参数,false
,则不会解码已经编码的内容,在请求时只编码需要编码的部分。url
- URL链接charset
- 编码,如果为null
不自动解码编码URLpublic static HttpRequest of(UrlBuilder url)
url
- UrlBuilder
public static void setGlobalTimeout(int customTimeout)
customTimeout
- 超时时长HttpGlobalConfig.setTimeout(int)
public static CookieManager getCookieManager()
CookieManager
GlobalCookieManager.getCookieManager()
public static void setCookieManager(CookieManager customCookieManager)
customCookieManager
- 自定义的CookieManager
GlobalCookieManager.setCookieManager(CookieManager)
public static void closeCookie()
GlobalCookieManager.setCookieManager(CookieManager)
public String getUrl()
public HttpRequest setUrl(String url)
url
- url字符串public HttpRequest setUrl(UrlBuilder urlBuilder)
urlBuilder
- url字符串public HttpRequest setUrlHandler(URLStreamHandler urlHandler)
URLStreamHandler
部分环境下需要单独设置此项,例如当 WebLogic Server 实例充当 SSL 客户端角色(它会尝试通过 SSL 连接到其他服务器或应用程序)时,
它会验证 SSL 服务器在数字证书中返回的主机名是否与用于连接 SSL 服务器的 URL 主机名相匹配。如果主机名不匹配,则删除此连接。
因此weblogic不支持https的sni协议的主机名验证,此时需要将此值设置为sun.net.www.protocol.https.Handler对象。
urlHandler
- URLStreamHandler
public HttpRequest setMethod(Method method)
method
- HTTP方法method(Method)
public HttpConnection getConnection()
HttpConnection
public HttpRequest setFixedContentLength(long contentLength)
contentLength
- 固定长度public HttpRequest method(Method method)
method
- HTTP方法public HttpRequest contentType(String contentType)
contentType
- contentTypepublic HttpRequest keepAlive(boolean isKeepAlive)
isKeepAlive
- 是否长连接public boolean isKeepAlive()
public String contentLength()
public HttpRequest contentLength(int value)
value
- 长度public HttpRequest cookie(Collection<HttpCookie> cookies)
cookies
- Cookie值数组,如果为null
则设置无效,使用默认Cookie行为public HttpRequest cookie(HttpCookie... cookies)
cookies
- Cookie值数组,如果为null
则设置无效,使用默认Cookie行为public HttpRequest cookie(String cookie)
cookie
- Cookie值,如果为null
则设置无效,使用默认Cookie行为public HttpRequest disableCookie()
cookie(String)
方法自定义Cookie。enableDefaultCookie()
public HttpRequest enableDefaultCookie()
public HttpRequest form(String name, Object value)
name
- 名value
- 值public HttpRequest form(String name, Object value, Object... parameters)
name
- 名value
- 值parameters
- 参数对,奇数为名,偶数为值public HttpRequest form(Map<String,Object> formMap)
formMap
- 表单内容public HttpRequest formStr(Map<String,String> formMapStr)
formMapStr
- 表单内容public HttpRequest form(String name, File... files)
name
- 名files
- 需要上传的文件,为空跳过public HttpRequest form(String name, File file)
name
- 名file
- 需要上传的文件public HttpRequest form(String name, File file, String fileName)
name
- 名file
- 需要上传的文件fileName
- 文件名,为空使用文件默认的文件名public HttpRequest form(String name, byte[] fileBytes, String fileName)
name
- 名fileBytes
- 需要上传的文件fileName
- 文件名public HttpRequest form(String name, Resource resource)
name
- 名resource
- 数据源,文件可以使用FileResource
包装使用public HttpRequest body(String body)
1. 标准参数,例如 a=1&b=2 这种格式 2. Rest模式,此时body需要传入一个JSON或者XML字符串,Hutool会自动绑定其对应的Content-Type
body
- 请求体public HttpRequest body(String body, String contentType)
1. 标准参数,例如 a=1&b=2 这种格式 2. Rest模式,此时body需要传入一个JSON或者XML字符串,Hutool会自动绑定其对应的Content-Type
body
- 请求体contentType
- 请求体类型,null
表示自动判断类型public HttpRequest body(byte[] bodyBytes)
bodyBytes
- 主体public HttpRequest body(Resource resource)
resource
- 主体public HttpRequest setConfig(HttpConfig config)
config
- 配置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 setFollowRedirects(boolean isFollowRedirects)
setMaxRedirectCount(int)
一致
需要注意的是,当设置为true
时,如果全局重定向次数非0,直接复用,否则设置默认2次。
当设置为false
时,无论全局是否设置次数,都设置为0。
不调用此方法的情况下,使用全局默认的次数。
isFollowRedirects
- 是否打开重定向public HttpRequest setFollowRedirectsCookie(boolean followRedirectsCookie)
followRedirectsCookie
- 自动重定向时是否处理cookiepublic HttpRequest setMaxRedirectCount(int maxRedirectCount)
maxRedirectCount
- 最大重定向次数public HttpRequest setHostnameVerifier(HostnameVerifier hostnameVerifier)
hostnameVerifier
- HostnameVerifierpublic HttpRequest setHttpProxy(String host, int port)
host
- 代理 主机port
- 代理 端口public HttpRequest setProxy(Proxy proxy)
proxy
- 代理 Proxy
public HttpRequest setSSLSocketFactory(SSLSocketFactory ssf)
ssf
- SSLScketFactorypublic HttpRequest setSSLProtocol(String protocol)
setSSLSocketFactory(SSLSocketFactory)
将被覆盖。
1. TLSv1.2 2. TLSv1.1 3. SSLv3 ...
protocol
- 协议SSLUtil.createSSLContext(String)
,
setSSLSocketFactory(SSLSocketFactory)
public HttpRequest setRest(boolean isRest)
isRest
- 是否rest模式public HttpRequest setChunkedStreamingMode(int blockSize)
blockSize
- 块大小(bytes数),0或小于0表示不设置Chuncked模式public HttpRequest addInterceptor(HttpInterceptor<HttpRequest> interceptor)
interceptor
- 拦截器实现addRequestInterceptor(HttpInterceptor)
public HttpRequest addRequestInterceptor(HttpInterceptor<HttpRequest> interceptor)
interceptor
- 拦截器实现public HttpRequest addResponseInterceptor(HttpInterceptor<HttpResponse> interceptor)
interceptor
- 拦截器实现public HttpResponse execute()
public HttpResponse executeAsync()
HttpResponse
为异步模式,执行完此方法后发送请求到服务器,但是并不立即读取响应内容。一般执行完execute之后会把响应内容全部读出来放在一个 byte数组里,如果你响应的内容太多内存就爆了,此法是发送完请求不直接读响应内容,等有需要的时候读。
public HttpResponse execute(boolean isAsync)
isAsync
- 是否异步public void then(Consumer<HttpResponse> consumer)
consumer
- 响应内容处理函数public <T> T thenFunction(Function<HttpResponse,T> function)
T
- 处理结果类型function
- 响应内容处理函数public HttpRequest basicAuth(String username, String password)
Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
username
- 用户名password
- 密码public HttpRequest basicProxyAuth(String username, String password)
Proxy-Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
username
- 用户名password
- 密码public HttpRequest bearerAuth(String token)
token
- 令牌内容public HttpRequest auth(String content)
content
- 验证内容public HttpRequest proxyAuth(String content)
content
- 验证内容public String toString()
toString
in class HttpBase<HttpRequest>
Copyright © 2024. All rights reserved.