public class HttpUtil extends Object
Modifier and Type | Field and Description |
---|---|
static Pattern |
CHARSET_PATTERN
正则:Content-Type中的编码信息
|
static Pattern |
META_CHARSET_PATTERN
正则:匹配meta标签的编码信息
|
Constructor and Description |
---|
HttpUtil() |
Modifier and Type | Method and Description |
---|---|
static String |
buildBasicAuth(String username,
String password,
Charset charset)
构建简单的账号秘密验证信息,构建后类似于:
Basic YWxhZGRpbjpvcGVuc2VzYW1l
|
static void |
closeCookie()
关闭Cookie
|
static HttpRequest |
createGet(String url)
创建Http GET请求对象
|
static HttpRequest |
createGet(String url,
boolean isFollowRedirects)
创建Http GET请求对象
|
static HttpRequest |
createPost(String url)
创建Http POST请求对象
|
static HttpRequest |
createRequest(Method method,
String url)
创建Http请求对象
|
static SimpleServer |
createServer(int port)
创建简易的Http服务器
|
static Map<String,String> |
decodeParamMap(String paramsStr,
Charset charset)
将URL参数解析为Map(也可以解析Post中的键值对参数)
|
static Map<String,List<String>> |
decodeParams(String paramsStr,
Charset charset)
将URL QueryString参数解析为Map
|
static Map<String,List<String>> |
decodeParams(String paramsStr,
Charset charset,
boolean isFormUrlEncoded)
将URL参数解析为Map(也可以解析Post中的键值对参数)
|
static Map<String,List<String>> |
decodeParams(String paramsStr,
String charset)
将URL参数解析为Map(也可以解析Post中的键值对参数)
|
static Map<String,List<String>> |
decodeParams(String paramsStr,
String charset,
boolean isFormUrlEncoded)
将URL参数解析为Map(也可以解析Post中的键值对参数)
|
static long |
download(String url,
OutputStream out,
boolean isCloseOut)
下载远程文件
|
static long |
download(String url,
OutputStream out,
boolean isCloseOut,
StreamProgress streamProgress)
下载远程文件
|
static byte[] |
downloadBytes(String url)
下载远程文件数据,支持30x跳转
|
static long |
downloadFile(String url,
File destFile)
下载远程文件
|
static long |
downloadFile(String url,
File destFile,
int timeout)
下载远程文件
|
static long |
downloadFile(String url,
File destFile,
int timeout,
StreamProgress streamProgress)
下载远程文件
|
static long |
downloadFile(String url,
File destFile,
StreamProgress streamProgress)
下载远程文件
|
static long |
downloadFile(String url,
String dest)
下载远程文件
|
static File |
downloadFileFromUrl(String url,
File destFile)
下载远程文件
|
static File |
downloadFileFromUrl(String url,
File destFile,
int timeout)
下载远程文件
|
static File |
downloadFileFromUrl(String url,
File destFile,
int timeout,
StreamProgress streamProgress)
下载远程文件
|
static File |
downloadFileFromUrl(String url,
File destFile,
StreamProgress streamProgress)
下载远程文件
|
static File |
downloadFileFromUrl(String url,
String dest)
下载远程文件
|
static String |
downloadString(String url,
Charset customCharset)
下载远程文本
|
static String |
downloadString(String url,
Charset customCharset,
StreamProgress streamPress)
下载远程文本
|
static String |
downloadString(String url,
String customCharsetName)
下载远程文本
|
static String |
encodeParams(String urlWithParams,
Charset charset)
对URL参数做编码,只编码键和值
提供的值可以是url附带参数,但是不能只是url 注意,此方法只能标准化整个URL,并不适合于单独编码参数值 |
static String |
get(String urlString)
发送get请求
|
static String |
get(String urlString,
Charset customCharset)
发送get请求
|
static String |
get(String urlString,
int timeout)
发送get请求
|
static String |
get(String urlString,
Map<String,Object> paramMap)
发送get请求
|
static String |
get(String urlString,
Map<String,Object> paramMap,
int timeout)
发送get请求
|
static String |
getCharset(HttpURLConnection conn)
从Http连接的头信息中获得字符集
从ContentType中获取 |
static String |
getCharset(String contentType)
从Http连接的头信息中获得字符集
从ContentType中获取 |
static String |
getContentTypeByRequestBody(String body)
从请求参数的body中判断请求的Content-Type类型,支持的类型有:
1. application/json
1. application/xml
|
static String |
getMimeType(String filePath)
根据文件扩展名获得MimeType
|
static String |
getMimeType(String filePath,
String defaultValue)
根据文件扩展名获得MimeType
|
static String |
getString(byte[] contentBytes,
Charset charset,
boolean isGetCharsetFromContent)
从流中读取内容
首先尝试使用charset编码读取内容(如果为空默认UTF-8),如果isGetCharsetFromContent为true,则通过正则在正文中获取编码信息,转换为指定编码; |
static String |
getString(InputStream in,
Charset charset,
boolean isGetCharsetFromContent)
从流中读取内容
首先尝试使用charset编码读取内容(如果为空默认UTF-8),如果isGetCharsetFromContent为true,则通过正则在正文中获取编码信息,转换为指定编码; |
static boolean |
isHttp(String url)
检测是否http
|
static boolean |
isHttps(String url)
检测是否https
|
static String |
normalizeParams(String paramPart,
Charset charset)
标准化参数字符串,即URL中?
|
static String |
post(String urlString,
Map<String,Object> paramMap)
发送post请求
|
static String |
post(String urlString,
Map<String,Object> paramMap,
int timeout)
发送post请求
|
static String |
post(String urlString,
String body)
发送post请求
请求体body参数支持两种类型: 1. |
static String |
post(String urlString,
String body,
int timeout)
发送post请求
请求体body参数支持两种类型: 1. |
static String |
toParams(Map<String,?> paramMap)
将Map形式的Form表单数据转换为Url参数形式,会自动url编码键和值
|
static String |
toParams(Map<String,?> paramMap,
Charset charset)
将Map形式的Form表单数据转换为Url参数形式
paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("") 会自动url编码键和值 此方法用于拼接URL中的Query部分,并不适用于POST请求中的表单 key1=v1&key2=&key3=v3 |
static String |
toParams(Map<String,?> paramMap,
Charset charset,
boolean isFormUrlEncoded)
将Map形式的Form表单数据转换为Url参数形式
paramMap中如果key为空(null和"")会被忽略,如果value为null,会被做为空白符("") 会自动url编码键和值 key1=v1&key2=&key3=v3 |
static String |
toParams(Map<String,Object> paramMap,
String charsetName)
Deprecated.
|
static String |
urlWithForm(String url,
Map<String,Object> form,
Charset charset,
boolean isEncodeParams)
将表单数据加到URL中(用于GET表单提交)
表单的键值对会被url编码,但是url中原参数不会被编码 |
static String |
urlWithForm(String url,
String queryString,
Charset charset,
boolean isEncode)
将表单数据字符串加到URL中(用于GET表单提交)
|
static String |
urlWithFormUrlEncoded(String url,
Map<String,Object> form,
Charset charset)
将表单数据加到URL中(用于GET表单提交)
表单的键值对会被url编码,但是url中原参数不会被编码
且对form参数进行 FormUrlEncoded ,x-www-form-urlencoded模式,此模式下空格会编码为'+'
|
public static final Pattern CHARSET_PATTERN
public static final Pattern META_CHARSET_PATTERN
public static boolean isHttps(String url)
url
- URLpublic static boolean isHttp(String url)
url
- URLpublic static HttpRequest createRequest(Method method, String url)
method
- 方法枚举Method
url
- 请求的URL,可以使HTTP或者HTTPSHttpRequest
public static HttpRequest createGet(String url)
url
- 请求的URL,可以使HTTP或者HTTPSHttpRequest
public static HttpRequest createGet(String url, boolean isFollowRedirects)
url
- 请求的URL,可以使HTTP或者HTTPSisFollowRedirects
- 是否打开重定向HttpRequest
public static HttpRequest createPost(String url)
url
- 请求的URL,可以使HTTP或者HTTPSHttpRequest
public static String get(String urlString, Charset customCharset)
urlString
- 网址customCharset
- 自定义请求字符集,如果字符集获取不到,使用此字符集public static String get(String urlString)
urlString
- 网址public static String get(String urlString, int timeout)
urlString
- 网址timeout
- 超时时长,-1表示默认超时,单位毫秒public static String get(String urlString, Map<String,Object> paramMap)
urlString
- 网址paramMap
- post表单数据public static String get(String urlString, Map<String,Object> paramMap, int timeout)
urlString
- 网址paramMap
- post表单数据timeout
- 超时时长,-1表示默认超时,单位毫秒public static String post(String urlString, Map<String,Object> paramMap)
urlString
- 网址paramMap
- post表单数据public static String post(String urlString, Map<String,Object> paramMap, int timeout)
urlString
- 网址paramMap
- post表单数据timeout
- 超时时长,-1表示默认超时,单位毫秒public static String post(String urlString, String body)
1. 标准参数,例如 a=1&b=2 这种格式 2. Rest模式,此时body需要传入一个JSON或者XML字符串,Hutool会自动绑定其对应的Content-Type
urlString
- 网址body
- post表单数据public static String post(String urlString, String body, int timeout)
1. 标准参数,例如 a=1&b=2 这种格式 2. Rest模式,此时body需要传入一个JSON或者XML字符串,Hutool会自动绑定其对应的Content-Type
urlString
- 网址body
- post表单数据timeout
- 超时时长,-1表示默认超时,单位毫秒public static String downloadString(String url, String customCharsetName)
url
- 请求的urlcustomCharsetName
- 自定义的字符集public static String downloadString(String url, Charset customCharset)
url
- 请求的urlcustomCharset
- 自定义的字符集,可以使用CharsetUtil.charset(java.lang.String)
方法转换public static String downloadString(String url, Charset customCharset, StreamProgress streamPress)
url
- 请求的urlcustomCharset
- 自定义的字符集,可以使用CharsetUtil.charset(java.lang.String)
方法转换streamPress
- 进度条 StreamProgress
public static long downloadFile(String url, String dest)
url
- 请求的urldest
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名public static long downloadFile(String url, File destFile)
url
- 请求的urldestFile
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名public static long downloadFile(String url, File destFile, int timeout)
url
- 请求的urldestFile
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名timeout
- 超时,单位毫秒,-1表示默认超时public static long downloadFile(String url, File destFile, StreamProgress streamProgress)
url
- 请求的urldestFile
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名streamProgress
- 进度条public static long downloadFile(String url, File destFile, int timeout, StreamProgress streamProgress)
url
- 请求的urldestFile
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名timeout
- 超时,单位毫秒,-1表示默认超时streamProgress
- 进度条public static File downloadFileFromUrl(String url, String dest)
url
- 请求的urldest
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名public static File downloadFileFromUrl(String url, File destFile)
url
- 请求的urldestFile
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名public static File downloadFileFromUrl(String url, File destFile, int timeout)
url
- 请求的urldestFile
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名timeout
- 超时,单位毫秒,-1表示默认超时public static File downloadFileFromUrl(String url, File destFile, StreamProgress streamProgress)
url
- 请求的urldestFile
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名streamProgress
- 进度条public static File downloadFileFromUrl(String url, File destFile, int timeout, StreamProgress streamProgress)
url
- 请求的urldestFile
- 目标文件或目录,当为目录时,取URL中的文件名,取不到使用编码后的URL做为文件名timeout
- 超时,单位毫秒,-1表示默认超时streamProgress
- 进度条public static long download(String url, OutputStream out, boolean isCloseOut)
url
- 请求的urlout
- 将下载内容写到输出流中 OutputStream
isCloseOut
- 是否关闭输出流public static long download(String url, OutputStream out, boolean isCloseOut, StreamProgress streamProgress)
url
- 请求的urlout
- 将下载内容写到输出流中 OutputStream
isCloseOut
- 是否关闭输出流streamProgress
- 进度条public static byte[] downloadBytes(String url)
url
- 请求的urlpublic static String toParams(Map<String,?> paramMap)
paramMap
- 表单数据@Deprecated public static String toParams(Map<String,Object> paramMap, String charsetName)
toParams(Map, Charset)
paramMap
- 表单数据charsetName
- 编码public static String toParams(Map<String,?> paramMap, Charset charset)
key1=v1&key2=&key3=v3
paramMap
- 表单数据charset
- 编码,null
表示不encode键值对toParams(Map, Charset, boolean)
public static String toParams(Map<String,?> paramMap, Charset charset, boolean isFormUrlEncoded)
key1=v1&key2=&key3=v3
paramMap
- 表单数据charset
- 编码,null表示不encode键值对isFormUrlEncoded
- 是否为x-www-form-urlencoded模式,此模式下空格会编码为'+'public static String encodeParams(String urlWithParams, Charset charset)
注意,此方法只能标准化整个URL,并不适合于单独编码参数值
urlWithParams
- url和参数,可以包含url本身,也可以单独参数charset
- 编码public static String normalizeParams(String paramPart, Charset charset)
注意,此方法只能标准化整个URL,并不适合于单独编码参数值
paramPart
- 参数字符串charset
- 编码public static Map<String,String> decodeParamMap(String paramsStr, Charset charset)
paramsStr
- 参数字符串(或者带参数的Path)charset
- 字符集public static Map<String,List<String>> decodeParams(String paramsStr, String charset)
paramsStr
- 参数字符串(或者带参数的Path)charset
- 字符集public static Map<String,List<String>> decodeParams(String paramsStr, String charset, boolean isFormUrlEncoded)
paramsStr
- 参数字符串(或者带参数的Path)charset
- 字符集isFormUrlEncoded
- 是否为x-www-form-urlencoded模式,此模式下空格会编码为'+'public static Map<String,List<String>> decodeParams(String paramsStr, Charset charset)
paramsStr
- 参数字符串(或者带参数的Path)charset
- 字符集public static Map<String,List<String>> decodeParams(String paramsStr, Charset charset, boolean isFormUrlEncoded)
paramsStr
- 参数字符串(或者带参数的Path)charset
- 字符集isFormUrlEncoded
- 是否为x-www-form-urlencoded模式,此模式下空格会编码为'+'public static String urlWithForm(String url, Map<String,Object> form, Charset charset, boolean isEncodeParams)
url
- URLform
- 表单数据charset
- 编码isEncodeParams
- 是否对键和值做转义处理public static String urlWithFormUrlEncoded(String url, Map<String,Object> form, Charset charset)
url
- URLform
- 表单数据charset
- 编码 null表示不encode键值对public static String urlWithForm(String url, String queryString, Charset charset, boolean isEncode)
url
- URLqueryString
- 表单数据字符串charset
- 编码isEncode
- 是否对键和值做转义处理public static String getCharset(HttpURLConnection conn)
conn
- HTTP连接对象public static String getCharset(String contentType)
contentType
- Content-Typepublic static String getString(InputStream in, Charset charset, boolean isGetCharsetFromContent)
in
- 输入流charset
- 字符集isGetCharsetFromContent
- 是否从返回内容中获得编码信息public static String getString(byte[] contentBytes, Charset charset, boolean isGetCharsetFromContent)
contentBytes
- 内容byte数组charset
- 字符集isGetCharsetFromContent
- 是否从返回内容中获得编码信息public static String getMimeType(String filePath, String defaultValue)
filePath
- 文件路径或文件名defaultValue
- 当获取MimeType为null时的默认值FileUtil.getMimeType(String)
public static String getMimeType(String filePath)
filePath
- 文件路径或文件名FileUtil.getMimeType(String)
public static String getContentTypeByRequestBody(String body)
1. application/json 1. application/xml
body
- 请求参数体ContentType.get(String)
public static SimpleServer createServer(int port)
port
- 端口SimpleServer
public static String buildBasicAuth(String username, String password, Charset charset)
Basic YWxhZGRpbjpvcGVuc2VzYW1l
username
- 账号password
- 密码charset
- 编码(如果账号或密码中有非ASCII字符适用)public static void closeCookie()
GlobalCookieManager.setCookieManager(CookieManager)
Copyright © 2024. All rights reserved.