Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xxl-job
Project
Project
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
刘晓滨
xxl-job
Commits
19e73f7b
Commit
19e73f7b
authored
Dec 03, 2018
by
刘晓滨
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master_1204_cy' into 'master'
新增HttpClientUtil See merge request
!2
parents
47e8082c
dd52f24e
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
209 additions
and
0 deletions
+209
-0
ConstantVar.java
...core/src/main/java/com/xxl/job/core/util/ConstantVar.java
+11
-0
HttpClientUtil.java
...e/src/main/java/com/xxl/job/core/util/HttpClientUtil.java
+198
-0
No files found.
xxl-job-core/src/main/java/com/xxl/job/core/util/ConstantVar.java
0 → 100644
View file @
19e73f7b
package
com
.
xxl
.
job
.
core
.
util
;
public
class
ConstantVar
{
public
static
final
String
MASTER_URL
=
"https://www.weixiaotong.com.cn/weixt/api/"
;
public
static
final
String
DEVELOP_URL
=
"https://weixt.spacetech.com.cn:8090/weixt/api/"
;
public
static
final
String
DEMO_URL
=
"http://demo.spacetech.com.cn/weixt/api/"
;
}
xxl-job-core/src/main/java/com/xxl/job/core/util/HttpClientUtil.java
0 → 100644
View file @
19e73f7b
package
com
.
xxl
.
job
.
core
.
util
;
import
java.io.BufferedReader
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.io.UnsupportedEncodingException
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.Iterator
;
import
java.util.List
;
import
java.util.Map
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.NameValuePair
;
import
org.apache.http.client.entity.UrlEncodedFormEntity
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.impl.conn.PoolingHttpClientConnectionManager
;
import
org.apache.http.message.BasicNameValuePair
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
HttpClientUtil
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
HttpClientUtil
.
class
);
public
static
UrlEncodedFormEntity
getPostParam
(
Map
<
String
,
String
>
param
)
throws
UnsupportedEncodingException
{
List
<
NameValuePair
>
params
=
getReqParamNVP
(
param
);
// 编码格式转换
return
new
UrlEncodedFormEntity
(
params
,
"utf-8"
);
}
@SuppressWarnings
(
"unchecked"
)
public
static
List
<
NameValuePair
>
getReqParamNVP
(
Map
<
String
,
String
>
param
)
{
List
<
NameValuePair
>
params
=
new
ArrayList
<
NameValuePair
>();
Iterator
it
=
param
.
entrySet
().
iterator
();
while
(
it
.
hasNext
())
{
java
.
util
.
Map
.
Entry
<
String
,
String
>
entry
=
(
Map
.
Entry
<
String
,
String
>)
it
.
next
();
params
.
add
(
new
BasicNameValuePair
(
entry
.
getKey
(),
entry
.
getValue
()));
// entry.getKey()
// 返回与此项对应的键,entry.getValue(),返回与此项对应的值,logger.info(entry.getValue());
}
return
params
;
}
public
static
Map
<
String
,
String
>
submitPostRequest
(
String
url
,
Map
<
String
,
String
>
postParamMap
,
Map
<
String
,
String
>
requestHeaderMap
)
throws
UnsupportedEncodingException
{
return
submitPostRequest
(
url
,
getPostParam
(
postParamMap
),
requestHeaderMap
);
}
/**
* 提交 POST 请求到服务器
*
* @param requestType
* 请求业务类型
* @param url
* 要POST的url,如果参数不多的话可以将参数直接设置到url中
* @param cookie
* @param referer
* @param param
* 要post到服务器的参数
* @return POST后的 response和cookie
*/
public
static
Map
<
String
,
String
>
submitPostRequest
(
String
url
,
UrlEncodedFormEntity
param
,
Map
<
String
,
String
>
requestHeaderMap
)
{
// logger.info("begin submitPostRequest url=" + url);
HttpPost
post
=
new
HttpPost
(
url
);
CloseableHttpResponse
response
=
null
;
InputStream
is
=
null
;
CloseableHttpClient
client
=
getHttpClient
();
HashMap
<
String
,
String
>
resultMap
=
new
HashMap
<
String
,
String
>();
try
{
setRequestHeader
(
requestHeaderMap
,
post
);
if
(
param
!=
null
)
{
post
.
setEntity
(
param
);
}
response
=
client
.
execute
(
post
);
String
jsessoiId
=
parseJesssionId
(
response
);
resultMap
.
put
(
"Cookie"
,
jsessoiId
);
resultMap
.
put
(
"status"
,
response
.
getStatusLine
().
getStatusCode
()
+
""
);
HttpEntity
entity
=
response
.
getEntity
();
if
(
entity
!=
null
)
{
is
=
entity
.
getContent
();
// start 读取整个页面内容
resultMap
.
put
(
"responseMessage"
,
readResponseInStream
(
is
));
// end
// 读取整个页面内容
}
}
catch
(
java
.
net
.
ConnectException
e
)
{
logger
.
error
(
"网络异常:url="
+
url
+
" 错误消息:"
+
e
.
getMessage
());
// e.printStackTrace();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
logger
.
error
(
e
.
getMessage
()
+
" URL="
+
url
);
// e.printStackTrace();
}
finally
{
try
{
if
(
is
!=
null
)
{
is
.
close
();
}
if
(
response
!=
null
)
{
response
.
close
();
}
post
.
releaseConnection
();
client
.
close
();
}
catch
(
Exception
e
)
{
// e.printStackTrace();
}
}
return
resultMap
;
}
public
static
CloseableHttpClient
getHttpClient
()
{
PoolingHttpClientConnectionManager
cm
=
new
PoolingHttpClientConnectionManager
();
cm
.
setMaxTotal
(
200
);
// 连接池最大并发连接数
cm
.
setDefaultMaxPerRoute
(
50
);
// 单路由最大并发数
CloseableHttpClient
httpClient
=
HttpClients
.
custom
().
setConnectionManager
(
cm
).
build
();
return
httpClient
;
}
private
static
void
setRequestHeader
(
Map
<
String
,
String
>
requestHeaderMap
,
HttpPost
post
)
{
if
(
requestHeaderMap
!=
null
)
{
Iterator
iter
=
requestHeaderMap
.
entrySet
().
iterator
();
while
(
iter
.
hasNext
())
{
Map
.
Entry
<
String
,
String
>
entry
=
(
Map
.
Entry
<
String
,
String
>)
iter
.
next
();
if
(
entry
.
getValue
()
!=
null
)
{
post
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
}
}
private
static
String
parseJesssionId
(
CloseableHttpResponse
response
)
{
String
result
=
""
;
if
(
response
.
getHeaders
(
"Set-Cookie"
)
!=
null
&&
response
.
getHeaders
(
"Set-Cookie"
).
length
>
0
)
{
String
cookieSession
=
response
.
getHeaders
(
"Set-Cookie"
)[
0
].
toString
();
String
[]
cookies
=
cookieSession
.
split
(
";"
);
for
(
String
cookie
:
cookies
)
{
int
jsessionIndex
=
cookie
.
indexOf
(
"JSESSIONID"
);
if
(
jsessionIndex
>
0
)
{
return
cookie
.
substring
(
jsessionIndex
,
cookie
.
length
());
}
}
}
return
result
;
}
private
static
String
readResponseInStream
(
InputStream
is
)
throws
IOException
{
BufferedReader
in
=
new
BufferedReader
(
new
InputStreamReader
(
is
));
StringBuffer
buffer
=
new
StringBuffer
();
String
line
=
""
;
while
((
line
=
in
.
readLine
())
!=
null
)
{
buffer
.
append
(
line
);
}
return
buffer
.
toString
();
}
public
static
String
postTaskJob
(
String
url
,
String
apiName
)
{
Map
<
String
,
String
>
params
=
new
HashMap
<
String
,
String
>();
Map
<
String
,
String
>
resultMap
=
new
HashMap
<>();
try
{
Map
<
String
,
String
>
sessoinMap
=
submitPostRequest
(
url
,
params
,
null
);
String
session
=
sessoinMap
.
get
(
"Cookie"
);
if
(
session
!=
null
&&
!
session
.
equals
(
""
))
{
Map
<
String
,
String
>
cookieMap
=
new
HashMap
<
String
,
String
>();
cookieMap
.
put
(
"Cookie"
,
session
);
HashMap
<
String
,
String
>
paramsw
=
new
HashMap
<
String
,
String
>();
paramsw
.
put
(
"apiparams"
,
"{}"
);
resultMap
=
submitPostRequest
(
url
+
apiName
,
paramsw
,
cookieMap
);
}
}
catch
(
UnsupportedEncodingException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
return
resultMap
.
get
(
"responseMessage"
);
}
public
static
void
main
(
String
[]
args
)
{
String
responseMessage
=
postTaskJob
(
"http://localhost:8080/weixt/api/"
,
"readexam_findBookExamList"
);
System
.
out
.
println
(
responseMessage
);
}
}
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