public class HttpUtil
extends java.lang.Object
| 限定符和类型 | 字段和说明 |
|---|---|
static java.util.regex.Pattern |
CHARSET_PATTERN
正则:Content-Type中的编码信息
|
static java.util.regex.Pattern |
META_CHARSET_PATTERN
正则:匹配meta标签的编码信息
|
| 构造器和说明 |
|---|
HttpUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static HttpRequest |
createGet(java.lang.String url)
创建Http GET请求对象
|
static HttpRequest |
createPost(java.lang.String url)
创建Http POST请求对象
|
static HttpRequest |
createRequest(Method method,
java.lang.String url)
创建Http请求对象
|
static java.lang.String |
decode(java.lang.String content,
java.nio.charset.Charset charset)
解码application/x-www-form-urlencoded字符
|
static java.lang.String |
decode(java.lang.String content,
java.lang.String charsetStr)
解码application/x-www-form-urlencoded字符
|
static java.util.HashMap<java.lang.String,java.lang.String> |
decodeParamMap(java.lang.String paramsStr,
java.lang.String charset)
将URL参数解析为Map(也可以解析Post中的键值对参数)
|
static java.util.Map<java.lang.String,java.util.List<java.lang.String>> |
decodeParams(java.lang.String paramsStr,
java.lang.String charset)
将URL参数解析为Map(也可以解析Post中的键值对参数)
|
static long |
download(java.lang.String url,
java.io.OutputStream out,
boolean isCloseOut)
下载远程文件
|
static long |
download(java.lang.String url,
java.io.OutputStream out,
boolean isCloseOut,
StreamProgress streamProgress)
下载远程文件
|
static long |
downloadFile(java.lang.String url,
java.io.File destFile)
下载远程文件
|
static long |
downloadFile(java.lang.String url,
java.io.File destFile,
int timeout)
下载远程文件
|
static long |
downloadFile(java.lang.String url,
java.io.File destFile,
int timeout,
StreamProgress streamProgress)
下载远程文件
|
static long |
downloadFile(java.lang.String url,
java.io.File destFile,
StreamProgress streamProgress)
下载远程文件
|
static long |
downloadFile(java.lang.String url,
java.lang.String dest)
下载远程文件
|
static java.lang.String |
downloadString(java.lang.String url,
java.nio.charset.Charset customCharset)
下载远程文本
|
static java.lang.String |
downloadString(java.lang.String url,
java.nio.charset.Charset customCharset,
StreamProgress streamPress)
下载远程文本
|
static java.lang.String |
downloadString(java.lang.String url,
java.lang.String customCharsetName)
下载远程文本
|
static java.lang.String |
encode(java.lang.String content,
java.nio.charset.Charset charset)
编码字符为 application/x-www-form-urlencoded
|
static java.lang.String |
encode(java.lang.String content,
java.lang.String charsetStr)
编码字符为 application/x-www-form-urlencoded
|
static java.lang.String |
encodeParams(java.lang.String paramsStr,
java.nio.charset.Charset charset)
对URL参数做编码,只编码键和值
提供的值可以是url附带编码,但是不能只是url |
static java.lang.String |
encodeUtf8(java.lang.String content)
编码字符为 application/x-www-form-urlencoded,使用UTF-8编码
|
static java.lang.String |
get(java.lang.String urlString)
发送get请求
|
static java.lang.String |
get(java.lang.String urlString,
java.nio.charset.Charset customCharset)
发送get请求
|
static java.lang.String |
get(java.lang.String urlString,
int timeout)
发送get请求
|
static java.lang.String |
get(java.lang.String urlString,
java.util.Map<java.lang.String,java.lang.Object> paramMap)
发送get请求
|
static java.lang.String |
get(java.lang.String urlString,
java.util.Map<java.lang.String,java.lang.Object> paramMap,
int timeout)
发送get请求
|
static java.lang.String |
getCharset(java.net.HttpURLConnection conn)
从Http连接的头信息中获得字符集
从ContentType中获取 |
static java.lang.String |
getClientIP(javax.servlet.http.HttpServletRequest request,
java.lang.String... otherHeaderNames)
获取客户端IP
默认检测的Header: 1、X-Forwarded-For 2、X-Real-IP 3、Proxy-Client-IP 4、WL-Proxy-Client-IP otherHeaderNames参数用于自定义检测的Header |
static java.lang.String |
getContentTypeByRequestBody(java.lang.String body)
从请求参数的body中判断请求的Content-Type类型,支持的类型有:
1. application/json
1. application/xml
|
static java.lang.String |
getMimeType(java.lang.String filePath)
根据文件扩展名获得MimeType
|
static java.lang.String |
getMultistageReverseProxyIp(java.lang.String ip)
从多级反向代理中获得第一个非unknown IP地址
|
static java.lang.String |
getString(byte[] contentBytes,
java.nio.charset.Charset charset,
boolean isGetCharsetFromContent)
从流中读取内容
首先尝试使用charset编码读取内容(如果为空默认UTF-8),如果isGetCharsetFromContent为true,则通过正则在正文中获取编码信息,转换为指定编码; |
static java.lang.String |
getString(java.io.InputStream in,
java.nio.charset.Charset charset,
boolean isGetCharsetFromContent)
从流中读取内容
首先尝试使用charset编码读取内容(如果为空默认UTF-8),如果isGetCharsetFromContent为true,则通过正则在正文中获取编码信息,转换为指定编码; |
static boolean |
isHttps(java.lang.String url)
检测是否https
|
static boolean |
isUnknow(java.lang.String checkString)
检测给定字符串是否为未知,多用于检测HTTP请求相关
|
static java.lang.String |
post(java.lang.String urlString,
java.util.Map<java.lang.String,java.lang.Object> paramMap)
发送post请求
|
static java.lang.String |
post(java.lang.String urlString,
java.util.Map<java.lang.String,java.lang.Object> paramMap,
int timeout)
发送post请求
|
static java.lang.String |
post(java.lang.String urlString,
java.lang.String body)
发送post请求
请求体body参数支持两种类型: 1. |
static java.lang.String |
post(java.lang.String urlString,
java.lang.String body,
int timeout)
发送post请求
请求体body参数支持两种类型: 1. |
static java.lang.String |
toParams(java.util.Map<java.lang.String,?> paramMap)
将Map形式的Form表单数据转换为Url参数形式,不做编码
|
static java.lang.String |
toParams(java.util.Map<java.lang.String,?> paramMap,
java.nio.charset.Charset charset)
将Map形式的Form表单数据转换为Url参数形式
paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("") 会自动url编码键和值 key1=v1&key2=&key3=v3 |
static java.lang.String |
toParams(java.util.Map<java.lang.String,java.lang.Object> paramMap,
java.lang.String charsetName)
将Map形式的Form表单数据转换为Url参数形式
编码键和值对 |
static java.lang.String |
urlWithForm(java.lang.String url,
java.util.Map<java.lang.String,java.lang.Object> form,
java.nio.charset.Charset charset,
boolean isEncode)
将表单数据加到URL中(用于GET表单提交)
表单的键值对会被url编码,但是url中原参数不会被编码 |
static java.lang.String |
urlWithForm(java.lang.String url,
java.lang.String queryString,
java.nio.charset.Charset charset,
boolean isEncode)
将表单数据字符串加到URL中(用于GET表单提交)
|
public static final java.util.regex.Pattern CHARSET_PATTERN
public static final java.util.regex.Pattern META_CHARSET_PATTERN
public static java.lang.String encodeUtf8(java.lang.String content)
content - 被编码内容public static java.lang.String encode(java.lang.String content,
java.nio.charset.Charset charset)
content - 被编码内容charset - 编码public static java.lang.String encode(java.lang.String content,
java.lang.String charsetStr)
throws HttpException
content - 被编码内容charsetStr - 编码HttpException - 编码不支持public static java.lang.String decode(java.lang.String content,
java.nio.charset.Charset charset)
content - 被解码内容charset - 编码public static java.lang.String decode(java.lang.String content,
java.lang.String charsetStr)
content - 被解码内容charsetStr - 编码public static java.lang.String getClientIP(javax.servlet.http.HttpServletRequest request,
java.lang.String... otherHeaderNames)
request - 请求对象otherHeaderNames - 其他自定义头文件public static boolean isHttps(java.lang.String url)
url - URLpublic static HttpRequest createRequest(Method method, java.lang.String url)
method - 方法枚举Methodurl - 请求的URL,可以使HTTP或者HTTPSHttpRequestpublic static HttpRequest createGet(java.lang.String url)
url - 请求的URL,可以使HTTP或者HTTPSHttpRequestpublic static HttpRequest createPost(java.lang.String url)
url - 请求的URL,可以使HTTP或者HTTPSHttpRequestpublic static java.lang.String get(java.lang.String urlString,
java.nio.charset.Charset customCharset)
urlString - 网址customCharset - 自定义请求字符集,如果字符集获取不到,使用此字符集public static java.lang.String get(java.lang.String urlString)
urlString - 网址public static java.lang.String get(java.lang.String urlString,
int timeout)
urlString - 网址timeout - 超时时长,-1表示默认超时,单位毫秒public static java.lang.String get(java.lang.String urlString,
java.util.Map<java.lang.String,java.lang.Object> paramMap)
urlString - 网址paramMap - post表单数据public static java.lang.String get(java.lang.String urlString,
java.util.Map<java.lang.String,java.lang.Object> paramMap,
int timeout)
urlString - 网址paramMap - post表单数据timeout - 超时时长,-1表示默认超时,单位毫秒public static java.lang.String post(java.lang.String urlString,
java.util.Map<java.lang.String,java.lang.Object> paramMap)
urlString - 网址paramMap - post表单数据public static java.lang.String post(java.lang.String urlString,
java.util.Map<java.lang.String,java.lang.Object> paramMap,
int timeout)
urlString - 网址paramMap - post表单数据timeout - 超时时长,-1表示默认超时,单位毫秒public static java.lang.String post(java.lang.String urlString,
java.lang.String body)
1. 标准参数,例如 a=1&b=2 这种格式 2. Rest模式,此时body需要传入一个JSON或者XML字符串,Hutool会自动绑定其对应的Content-Type
urlString - 网址body - post表单数据public static java.lang.String post(java.lang.String urlString,
java.lang.String body,
int timeout)
1. 标准参数,例如 a=1&b=2 这种格式 2. Rest模式,此时body需要传入一个JSON或者XML字符串,Hutool会自动绑定其对应的Content-Type
urlString - 网址body - post表单数据timeout - 超时时长,-1表示默认超时,单位毫秒public static java.lang.String downloadString(java.lang.String url,
java.lang.String customCharsetName)
url - 请求的urlcustomCharsetName - 自定义的字符集public static java.lang.String downloadString(java.lang.String url,
java.nio.charset.Charset customCharset)
url - 请求的urlcustomCharset - 自定义的字符集,可以使用CharsetUtil.charset(java.lang.String) 方法转换public static java.lang.String downloadString(java.lang.String url,
java.nio.charset.Charset customCharset,
StreamProgress streamPress)
url - 请求的urlcustomCharset - 自定义的字符集,可以使用CharsetUtil.charset(java.lang.String) 方法转换streamPress - 进度条 StreamProgresspublic static long downloadFile(java.lang.String url,
java.lang.String dest)
url - 请求的urldest - 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名public static long downloadFile(java.lang.String url,
java.io.File destFile)
url - 请求的urldestFile - 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名public static long downloadFile(java.lang.String url,
java.io.File destFile,
int timeout)
url - 请求的urldestFile - 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名timeout - 超时,单位毫秒,-1表示默认超时public static long downloadFile(java.lang.String url,
java.io.File destFile,
StreamProgress streamProgress)
url - 请求的urldestFile - 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名streamProgress - 进度条public static long downloadFile(java.lang.String url,
java.io.File destFile,
int timeout,
StreamProgress streamProgress)
url - 请求的urldestFile - 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名timeout - 超时,单位毫秒,-1表示默认超时streamProgress - 进度条public static long download(java.lang.String url,
java.io.OutputStream out,
boolean isCloseOut)
url - 请求的urlout - 将下载内容写到输出流中 OutputStreamisCloseOut - 是否关闭输出流public static long download(java.lang.String url,
java.io.OutputStream out,
boolean isCloseOut,
StreamProgress streamProgress)
url - 请求的urlout - 将下载内容写到输出流中 OutputStreamisCloseOut - 是否关闭输出流streamProgress - 进度条public static java.lang.String toParams(java.util.Map<java.lang.String,?> paramMap)
paramMap - 表单数据public static java.lang.String toParams(java.util.Map<java.lang.String,java.lang.Object> paramMap,
java.lang.String charsetName)
paramMap - 表单数据charsetName - 编码public static java.lang.String toParams(java.util.Map<java.lang.String,?> paramMap,
java.nio.charset.Charset charset)
key1=v1&key2=&key3=v3
paramMap - 表单数据charset - 编码public static java.lang.String encodeParams(java.lang.String paramsStr,
java.nio.charset.Charset charset)
paramsStr - url参数,可以包含url本身charset - 编码public static java.util.HashMap<java.lang.String,java.lang.String> decodeParamMap(java.lang.String paramsStr,
java.lang.String charset)
paramsStr - 参数字符串(或者带参数的Path)charset - 字符集public static java.util.Map<java.lang.String,java.util.List<java.lang.String>> decodeParams(java.lang.String paramsStr,
java.lang.String charset)
paramsStr - 参数字符串(或者带参数的Path)charset - 字符集public static java.lang.String urlWithForm(java.lang.String url,
java.util.Map<java.lang.String,java.lang.Object> form,
java.nio.charset.Charset charset,
boolean isEncode)
url - URLform - 表单数据charset - 编码isEncode - 是否对键和值做转义处理public static java.lang.String urlWithForm(java.lang.String url,
java.lang.String queryString,
java.nio.charset.Charset charset,
boolean isEncode)
url - URLqueryString - 表单数据字符串charset - 编码isEncode - 是否对键和值做转义处理public static java.lang.String getCharset(java.net.HttpURLConnection conn)
conn - HTTP连接对象public static java.lang.String getMultistageReverseProxyIp(java.lang.String ip)
ip - 获得的IP地址public static boolean isUnknow(java.lang.String checkString)
checkString - 被检测的字符串public static java.lang.String getString(java.io.InputStream in,
java.nio.charset.Charset charset,
boolean isGetCharsetFromContent)
throws java.io.IOException
in - 输入流charset - 字符集isGetCharsetFromContent - 是否从返回内容中获得编码信息java.io.IOException - IO异常public static java.lang.String getString(byte[] contentBytes,
java.nio.charset.Charset charset,
boolean isGetCharsetFromContent)
throws java.io.IOException
contentBytes - 内容byte数组charset - 字符集isGetCharsetFromContent - 是否从返回内容中获得编码信息java.io.IOException - IO异常public static java.lang.String getMimeType(java.lang.String filePath)
filePath - 文件路径或文件名FileUtil.getMimeType(String)public static java.lang.String getContentTypeByRequestBody(java.lang.String body)
1. application/json 1. application/xml
body - 请求参数体ContentType.get(String)Copyright © 2018. All rights reserved.