public class HttpRequest extends HttpBase<HttpRequest>
Constructor and Description |
---|
HttpRequest(String url)
构造,URL编码默认使用UTF-8
|
HttpRequest(UrlBuilder url)
构造
|
Modifier and Type | Method and Description |
---|---|
HttpRequest |
auth(String content)
验证,简单插入Authorization头
|
HttpRequest |
basicAuth(String username,
String password)
简单验证,生成的头信息类似于:
|
HttpRequest |
basicProxyAuth(String username,
String password)
简单代理验证,生成的头信息类似于:
|
HttpRequest |
bearerAuth(String token)
令牌验证,生成的头类似于:"Authorization: Bearer XXXXX",一般用于JWT
|
HttpRequest |
body(byte[] bodyBytes)
设置主体字节码
需在此方法调用前使用charset方法设置编码,否则使用默认编码UTF-8 |
HttpRequest |
body(String body)
设置内容主体
请求体body参数支持两种类型: |
HttpRequest |
body(String body,
String contentType)
设置内容主体
请求体body参数支持两种类型: |
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置为空。
如果想重新启用Cookie,请调用: cookie(String) 方法自定义Cookie。如果想启动默认的Cookie行为(自动回填服务器传回的Cookie),则调用 enableDefaultCookie() |
HttpRequest |
enableDefaultCookie()
打开默认的Cookie行为(自动回填服务器传回的Cookie)
|
HttpResponse |
execute()
执行Reuqest请求
|
HttpResponse |
execute(boolean isAsync)
执行Reuqest请求
|
HttpResponse |
executeAsync()
|
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 |
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 |
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)
采用流方式上传数据,无需本地缓存数据。
HttpUrlConnection默认是将所有数据读到本地缓存,然后再发送给服务器,这样上传大文件时就会导致内存溢出。 |
HttpRequest |
setConnectionTimeout(int milliseconds)
设置连接超时,单位:毫秒
|
static void |
setCookieManager(CookieManager customCookieManager)
|
HttpRequest |
setEncodeUrlParams(boolean isEncodeUrlParams)
Deprecated.
编码自动完成,无需设置
|
HttpRequest |
setFollowRedirects(boolean isFollowRedirects)
设置是否打开重定向,如果打开默认重定向次数为2
此方法效果与 setMaxRedirectCount(int) 一致 |
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)
|
HttpRequest |
timeout(int milliseconds)
设置超时,单位:毫秒
超时包括: |
String |
toString() |
static HttpRequest |
trace(String url)
TRACE请求
|
addHeaders, charset, charset, charset, header, header, header, header, header, header, header, header, headerList, headerMap, headers, httpVersion, httpVersion, removeHeader, removeHeader
public HttpRequest(String url)
url
- URLpublic HttpRequest(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 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 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对象。
相关issue见:https://gitee.com/loolly/hutool/issues/IMD1X
urlHandler
- URLStreamHandler
public HttpRequest setMethod(Method method)
method
- HTTP方法method(Method)
public HttpConnection getConnection()
HttpConnection
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 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 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()
@Deprecated public HttpRequest setEncodeUrlParams(boolean isEncodeUrlParams)
isEncodeUrlParams
- 是否对URL中的参数进行编码public HttpRequest setFollowRedirects(boolean isFollowRedirects)
setMaxRedirectCount(int)
一致isFollowRedirects
- 是否打开重定向public 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
- 协议SSLSocketFactoryBuilder
,
setSSLSocketFactory(SSLSocketFactory)
public HttpRequest setRest(boolean isRest)
isRest
- 是否rest模式public HttpRequest setChunkedStreamingMode(int blockSize)
blockSize
- 块大小(bytes数),0或小于0表示不设置Chuncked模式public HttpResponse execute()
public HttpResponse executeAsync()
HttpResponse
为异步模式,执行完此方法后发送请求到服务器,但是并不立即读取响应内容。一般执行完execute之后会把响应内容全部读出来放在一个 byte数组里,如果你响应的内容太多内存就爆了,此法是发送完请求不直接读响应内容,等有需要的时候读。
public HttpResponse execute(boolean isAsync)
isAsync
- 是否异步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 © 2021. All rights reserved.