Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
I
ihooyah-flume
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
黄杰
ihooyah-flume
Commits
66886203
Commit
66886203
authored
Mar 23, 2023
by
txy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调用三方接口工具类
parent
ee331933
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
216 additions
and
0 deletions
+216
-0
HttpRequestUtil.java
...ain/java/com/ihooyah/flume/sink/util/HttpRequestUtil.java
+216
-0
No files found.
src/main/java/com/ihooyah/flume/sink/util/HttpRequestUtil.java
0 → 100644
View file @
66886203
package
com
.
ihooyah
.
flume
.
sink
.
util
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpStatus
;
import
org.apache.http.StatusLine
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.entity.StringEntity
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.util.EntityUtils
;
import
java.io.*
;
import
java.net.HttpURLConnection
;
import
java.net.URL
;
import
java.util.List
;
import
java.util.Map
;
/**
* @description: 苏证通请求工具类
* @author:taojjun
* @date:2021-01-0510:48
**/
public
class
HttpRequestUtil
{
/**
* 发送GET请求
*
* @param url 目的地址
* @param parameters 请求参数,Map类型。
* @return 远程响应结果
*/
public
static
String
sendGet
(
String
url
,
Map
<
String
,
String
>
parameters
)
{
String
result
=
""
;
// 读取响应输入流
BufferedReader
in
=
null
;
// 存储参数
StringBuffer
sb
=
new
StringBuffer
();
// 编码之后的参数
String
params
=
""
;
try
{
// 编码请求参数
if
(
parameters
.
size
()
==
1
)
{
for
(
String
name
:
parameters
.
keySet
())
{
sb
.
append
(
name
).
append
(
"="
).
append
(
java
.
net
.
URLEncoder
.
encode
(
parameters
.
get
(
name
),
"UTF-8"
));
}
params
=
sb
.
toString
();
}
else
{
for
(
String
name
:
parameters
.
keySet
())
{
sb
.
append
(
name
).
append
(
"="
).
append
(
java
.
net
.
URLEncoder
.
encode
(
parameters
.
get
(
name
),
"UTF-8"
))
.
append
(
"&"
);
}
String
temp_params
=
sb
.
toString
();
params
=
temp_params
.
substring
(
0
,
temp_params
.
length
()
-
1
);
}
String
full_url
=
url
+
"?"
+
params
;
System
.
out
.
println
(
full_url
);
// 创建URL对象
URL
connURL
=
new
URL
(
full_url
);
// 打开URL连接
HttpURLConnection
httpConn
=
(
HttpURLConnection
)
connURL
.
openConnection
();
// 设置通用属性
httpConn
.
setRequestProperty
(
"Accept"
,
"*/*"
);
httpConn
.
setRequestProperty
(
"Connection"
,
"Keep-Alive"
);
httpConn
.
setRequestProperty
(
"User-Agent"
,
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)"
);
// 建立实际的连接
httpConn
.
connect
();
// 响应头部获取
Map
<
String
,
List
<
String
>>
headers
=
httpConn
.
getHeaderFields
();
// 遍历所有的响应头字段
for
(
String
key
:
headers
.
keySet
())
{
System
.
out
.
println
(
key
+
"\t:\t"
+
headers
.
get
(
key
));
}
// 定义BufferedReader输入流来读取URL的响应,并设置编码方式
in
=
new
BufferedReader
(
new
InputStreamReader
(
httpConn
.
getInputStream
(),
"UTF-8"
));
String
line
;
// 读取返回的内容
while
((
line
=
in
.
readLine
())
!=
null
)
{
result
+=
line
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
if
(
in
!=
null
)
{
in
.
close
();
}
}
catch
(
IOException
ex
)
{
ex
.
printStackTrace
();
}
}
return
result
;
}
/**
* 发送post请求
* @param url 请求的url
* @param parameter 请求的参数
* @return 返回字符串结果
*/
public
static
String
sendPost
(
String
url
,
String
parameter
,
Map
<
String
,
String
>
parameters
)
{
String
result
=
""
;
// 存储参数
StringBuffer
sb
=
new
StringBuffer
();
// 编码之后的参数
String
params
=
""
;
try
{
// 编码请求参数
if
(
parameters
.
size
()
==
1
)
{
for
(
String
name
:
parameters
.
keySet
())
{
sb
.
append
(
name
).
append
(
"="
).
append
(
java
.
net
.
URLEncoder
.
encode
(
parameters
.
get
(
name
),
"UTF-8"
));
}
params
=
sb
.
toString
();
}
else
{
for
(
String
name
:
parameters
.
keySet
())
{
sb
.
append
(
name
).
append
(
"="
).
append
(
java
.
net
.
URLEncoder
.
encode
(
parameters
.
get
(
name
),
"UTF-8"
))
.
append
(
"&"
);
}
String
temp_params
=
sb
.
toString
();
params
=
temp_params
.
substring
(
0
,
temp_params
.
length
()
-
1
);
}
String
full_url
=
url
+
"?"
+
params
;
URL
u0
=
new
URL
(
full_url
);
HttpURLConnection
conn
=
(
HttpURLConnection
)
u0
.
openConnection
();
conn
.
setRequestMethod
(
"POST"
);
byte
contentbyte
[]
=
parameter
.
toString
().
getBytes
();
//设置请求类型
conn
.
setRequestProperty
(
"Content-Type"
,
"application/x-www-form-urlencoded;charset=UTF-8"
);
//设置表单长度
conn
.
setRequestProperty
(
"Content-Length"
,
(
new
StringBuilder
()).
append
(
contentbyte
.
length
).
toString
());
//设置默认语言
conn
.
setRequestProperty
(
"Content-Language"
,
"en-US"
);
//zh-CN代表中国 默认为美式英语httpurlconnection.setRequestProperty("Accept-Charset", "utf-8");
conn
.
setRequestProperty
(
"contentType"
,
"utf-8"
);
//连接主机的超时时间(单位:毫秒)
conn
.
setConnectTimeout
(
60000
);
//从主机读取数据的超时时间(单位:毫秒)
conn
.
setReadTimeout
(
60000
);
// Post 请求不能使用缓存
conn
.
setUseCaches
(
false
);
// 设置是否从httpUrlConnection读入,默认情况下是true;
conn
.
setDoInput
(
true
);
// 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在 2
// http正文内,因此需要设为true, 默认情况下是false;
conn
.
setDoOutput
(
true
);
BufferedWriter
bWriter
=
new
BufferedWriter
(
new
OutputStreamWriter
(
conn
.
getOutputStream
(),
"utf-8"
));
bWriter
.
write
(
parameter
);
bWriter
.
flush
();
bWriter
.
close
();
// 调用HttpURLConnection连接对象的getInputStream()函数,
// 将内存缓冲区中封装好的完整的HTTP请求电文发送到服务端。
InputStream
in
=
conn
.
getInputStream
();
StringBuffer
buffer
=
new
StringBuffer
();
for
(
int
i
=
0
;
i
!=
-
1
;)
{
i
=
in
.
read
();
if
(
i
!=
-
1
)
{
buffer
.
append
((
char
)
i
);
}
}
in
.
close
();
//此方法是用Reader读取BufferedReader reader = new BufferedReader(new InputStreamReader( connection.getInputStream()));
result
=
new
String
(
buffer
.
toString
().
getBytes
(
"iso-8859-1"
),
"UTF-8"
);
}
catch
(
Exception
ex
)
{
ex
.
printStackTrace
();
}
return
result
;
}
public
static
String
doPostJson
(
String
url
,
String
params
,
Map
<
String
,
String
>
header
)
{
CloseableHttpClient
httpclient
=
HttpClients
.
createDefault
();
HttpPost
httpPost
=
new
HttpPost
(
url
);
if
(
header
!=
null
)
{
for
(
String
key
:
header
.
keySet
())
{
String
value
=
header
.
get
(
key
);
httpPost
.
setHeader
(
key
,
value
);
}
}
httpPost
.
setHeader
(
"Accept"
,
"application/json"
);
httpPost
.
setHeader
(
"Content-Type"
,
"application/json"
);
// RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000).build();
// httpPost.setConfig(requestConfig);
if
(
params
!=
null
)
{
String
charSet
=
"UTF-8"
;
StringEntity
entity
=
new
StringEntity
(
params
,
charSet
);
httpPost
.
setEntity
(
entity
);
}
CloseableHttpResponse
response
=
null
;
try
{
response
=
httpclient
.
execute
(
httpPost
);
StatusLine
status
=
response
.
getStatusLine
();
int
state
=
status
.
getStatusCode
();
if
(
state
==
HttpStatus
.
SC_OK
)
{
HttpEntity
responseEntity
=
response
.
getEntity
();
String
jsonString
=
EntityUtils
.
toString
(
responseEntity
);
return
jsonString
;
}
else
{
return
null
;
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
null
;
}
finally
{
if
(
response
!=
null
)
{
try
{
response
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
try
{
httpclient
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment