Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
H
hroToOA
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
private-group
hroToOA
Commits
8218da17
Commit
8218da17
authored
Mar 25, 2021
by
李志平
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
demo
parent
01c79af6
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
2050 additions
and
13 deletions
+2050
-13
RSA-0.0.1-SNAPSHOT.jar
lib/RSA-0.0.1-SNAPSHOT.jar
+0
-0
rsa_2048_priv.key
lib/keys/rsa_2048_priv.key
+1
-0
rsa_2048_pub.key
lib/keys/rsa_2048_pub.key
+1
-0
pom.xml
pom.xml
+22
-0
OpenOAController.java
src/main/java/com/dianmi/controller/OpenOAController.java
+11
-0
QueryWorkflowDetailDto.java
src/main/java/com/dianmi/dto/QueryWorkflowDetailDto.java
+17
-0
QueryWorkflowTypeDto.java
src/main/java/com/dianmi/dto/QueryWorkflowTypeDto.java
+20
-0
IOpenOAService.java
src/main/java/com/dianmi/service/IOpenOAService.java
+29
-0
OpenOAServiceImpl.java
src/main/java/com/dianmi/service/impl/OpenOAServiceImpl.java
+81
-0
WorkflowBaseInfo.java
src/main/java/com/dianmi/ws/WorkflowBaseInfo.java
+4
-4
WorkflowRequestInfo.java
src/main/java/com/dianmi/ws/WorkflowRequestInfo.java
+7
-7
WorkflowService.java
src/main/java/com/dianmi/ws/WorkflowService.java
+1
-1
WorkflowServicePortType.java
src/main/java/com/dianmi/ws/WorkflowServicePortType.java
+1
-1
RequestCreateDemo.java
src/test/java/com/dianmi/RequestCreateDemo.java
+143
-0
RequestRejectDemo.java
src/test/java/com/dianmi/RequestRejectDemo.java
+56
-0
RequestSubmitDemo.java
src/test/java/com/dianmi/RequestSubmitDemo.java
+142
-0
WsTest.java
src/test/java/com/dianmi/WsTest.java
+30
-0
WorkflowDetailTableInfoEntity.java
...java/com/dianmi/entity/WorkflowDetailTableInfoEntity.java
+82
-0
WorkflowRequestTableField.java
...est/java/com/dianmi/entity/WorkflowRequestTableField.java
+233
-0
WorkflowRequestTableRecord.java
...st/java/com/dianmi/entity/WorkflowRequestTableRecord.java
+33
-0
HttpManager.java
src/test/java/com/dianmi/util/HttpManager.java
+1018
-0
IdentityVerifyUtil.java
src/test/java/com/dianmi/util/IdentityVerifyUtil.java
+118
-0
No files found.
lib/RSA-0.0.1-SNAPSHOT.jar
0 → 100644
View file @
8218da17
File added
lib/keys/rsa_2048_priv.key
0 → 100644
View file @
8218da17
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDEGvSRtg1e80qIznrkXRxS+vtH6iE2DuELz9AoA4FBZepMOxlXbwZaOYqoAkryEWV+ROj7fecLtc2JbILf3CL8Pids7whwZcM0Zpds9PNlis9q8jcuAQfICsiTO03DKG7/G8c8O3bjn6lW/7BdTjtp2jISE/HoSE2g7vLqWzv3T/1YUwd9rqu32Qdu15tEqJHcCu2DYZjBseccRHxMX8KQNdoSMKjRrdoF1DU2r3edyOj09UG2btwjZoxgH1qPQMCmRZnuCUxbTMmaZNyzDi9CE7K+0IMItacTo9G4+egNWi84NrvRSqSReK2uTOx0Z50Xs7EgPt1tM0RGuLBGkIgBAgMBAAECggEAdwh1k0yR6SR8BXZvmdX6r1Ow2wH+jrWRXH4Tt3YJKw0Vnpfw1eWKUZHD3B8oJq7wkCh70sulRrJfxB6dggw5ICsJ+1FMKg1a45+yImy8oNIU/LFxVPdDJeWFwfipRuBwH2FZGfJuQ9RSEYC6KKin36SV5+s7VucsV5cy05X1XDObPmJXicyIVeGCV2e3Pt3MyK3AQuVKxL5MtJEqHn91TjJRX4NTEPNqIF2T2GfsOAj1wQ3eHyC77vUyNTGtePNFOoy+1yd7gH30pzTfyqG8JrTPRPqaWNi4STHkrlMsGehmvTbDzw/UeQphbjm3omEp07xvDOldTKvLBqqHPxjU0QKBgQD+U/+Jgnp5IY34feDevdi7+kud3DGO4JSgdEPUYvec260YjXnodM/QILeXuxfH5Q8F9eh11KqLI8HjYdZ7u7vLz7iyx8iJiWVEzlPBpXHYKd+IOvBfbdft1cWSgRVDwcDiMXucQQNIFUjkMNmhBdW9QjhBkuJl1auhmGM5b+4xYwKBgQDFZPm+nhIGWPcCu98WrsgkGDM+wy862jwHIiJixaRBULX1/mPLosP35yxKWbfVaFPcfxdN5W31njQ9OUJkYeQpFO9uyE6Xx7ohA+qNHgYlW+Xfi02E9pBJH/FCBdOjAFPEyp1cBNAuRft22w1fLNIZJ5VQWEDvZ+aftHNJURywSwKBgAUsRjVQzxbppM6aGNnO+LqSE7mpQeTLEprU4pBOVwT8vt+R+RnOTm/ISpOufYRWV2DiqJDE+5cK6iWq1sb7gY1as0IHqD+L6OBmZfO5XsBr0Z0evcbjIBI5V+Rr9bfEGB1Brmb2N4/exvXFPJf222sXDrfeufYiS3Rk+hev/CNLAoGALKGSHllbNfgzkXitDlHiita174DuUt45KFu9bpvFcccv/TjRk59vs8OfLghvGl+GZpqNyF0RqbFlmlox+sRvdCJ5qJC9xG+yU/iwtcuOFDBdH1g95Mxi/0WrpQPwQDC4wAwX3FBySaQlIVCSC2z07B8ZEZuCwx649G82ieM/G1UCgYAugR4Z/1uafgXScjYShSMbP3HohmWKbCo1Ws9wtv2MNlmGtE2AhJq5ZLNccsM9sztPzgXQjSeVlyfPethqQeVdV+iCNaj4/VaL2QAyiCfEbc3dRkm5840Ob4rQtizicSIUvKuBaU9fgmtDvzgvgE0eaMh1OppSdAZ0qEut2xXErA==
\ No newline at end of file
lib/keys/rsa_2048_pub.key
0 → 100644
View file @
8218da17
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxBr0kbYNXvNKiM565F0cUvr7R+ohNg7hC8/QKAOBQWXqTDsZV28GWjmKqAJK8hFlfkTo+33nC7XNiWyC39wi/D4nbO8IcGXDNGaXbPTzZYrPavI3LgEHyArIkztNwyhu/xvHPDt245+pVv+wXU47adoyEhPx6EhNoO7y6ls790/9WFMHfa6rt9kHbtebRKiR3Artg2GYwbHnHER8TF/CkDXaEjCo0a3aBdQ1Nq93ncjo9PVBtm7cI2aMYB9aj0DApkWZ7glMW0zJmmTcsw4vQhOyvtCDCLWnE6PRuPnoDVovODa70UqkkXitrkzsdGedF7OxID7dbTNERriwRpCIAQIDAQAB
\ No newline at end of file
pom.xml
View file @
8218da17
...
...
@@ -123,6 +123,28 @@
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-actuator
</artifactId>
</dependency>
<dependency>
<groupId>
commons-httpclient
</groupId>
<artifactId>
commons-httpclient
</artifactId>
<version>
3.1
</version>
</dependency>
<dependency>
<groupId>
commons-io
</groupId>
<artifactId>
commons-io
</artifactId>
<version>
2.8.0
</version>
</dependency>
<dependency>
<groupId>
rsa
</groupId>
<artifactId>
RSA
</artifactId>
<version>
0.0.1
</version>
<systemPath>
${project.basedir}/lib/RSA-0.0.1-SNAPSHOT.jar
</systemPath>
<scope>
system
</scope>
</dependency>
<dependency>
<groupId>
org.apache.httpcomponents
</groupId>
<artifactId>
httpmime
</artifactId>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
...
...
src/main/java/com/dianmi/controller/OpenOAController.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
.
controller
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.RequestMapping
;
@Controller
@RequestMapping
(
"/open/oa"
)
public
class
OpenOAController
{
}
src/main/java/com/dianmi/dto/QueryWorkflowDetailDto.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
.
dto
;
import
java.io.Serializable
;
import
lombok.Data
;
@Data
public
class
QueryWorkflowDetailDto
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
-
5655371382778469618L
;
private
Integer
requestid
;
//流程请求ID
private
Integer
userid
;
//当前用户
private
Integer
fromrequestid
;
//流程信息
}
src/main/java/com/dianmi/dto/QueryWorkflowTypeDto.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
.
dto
;
import
java.io.Serializable
;
import
lombok.Data
;
@Data
public
class
QueryWorkflowTypeDto
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
6383851310085491249L
;
private
Integer
pageNo
;
private
Integer
pageSize
;
private
Integer
recordCount
;
private
Integer
userid
;
private
String
conditions
;
}
src/main/java/com/dianmi/service/IOpenOAService.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
.
service
;
import
java.util.List
;
import
java.util.Map
;
import
com.dianmi.dto.QueryWorkflowDetailDto
;
import
com.dianmi.dto.QueryWorkflowTypeDto
;
import
com.dianmi.ws.WorkflowBaseInfo
;
import
com.dianmi.ws.WorkflowRequestInfo
;
public
interface
IOpenOAService
{
/**
* 查询可创建流程类型
* @param dto
* @return
*/
public
List
<
WorkflowBaseInfo
>
getCreateWorkflowTypeList
(
QueryWorkflowTypeDto
dto
);
/**
* 查询流程详情
* @param dto
* @return
*/
public
WorkflowRequestInfo
getWorkflowRequest
(
QueryWorkflowDetailDto
dto
);
public
void
redirectOA
(
Map
<
String
,
String
>
paraMap
);
}
src/main/java/com/dianmi/service/impl/OpenOAServiceImpl.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
.
service
.
impl
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
org.apache.commons.lang3.ArrayUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.InitializingBean
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
import
org.springframework.web.client.RestTemplate
;
import
com.dianmi.dto.QueryWorkflowDetailDto
;
import
com.dianmi.dto.QueryWorkflowTypeDto
;
import
com.dianmi.service.IOpenOAService
;
import
com.dianmi.ws.ArrayOfString
;
import
com.dianmi.ws.ArrayOfWorkflowBaseInfo
;
import
com.dianmi.ws.WorkflowBaseInfo
;
import
com.dianmi.ws.WorkflowRequestInfo
;
import
com.dianmi.ws.WorkflowService
;
import
com.dianmi.ws.WorkflowServicePortType
;
import
lombok.extern.slf4j.Slf4j
;
@Slf4j
@Service
public
class
OpenOAServiceImpl
implements
IOpenOAService
,
InitializingBean
{
@Value
(
"${oa.baseUrl}"
)
private
String
baseUrl
;
@Value
(
"${oa.appId}"
)
private
String
appId
;
private
String
oaWsdlUrl
;
private
WorkflowServicePortType
workflowServicePortType
;
private
RestTemplate
restTemplate
;
@Override
public
List
<
WorkflowBaseInfo
>
getCreateWorkflowTypeList
(
QueryWorkflowTypeDto
dto
)
{
String
conditions
=
dto
.
getConditions
();
String
[]
str
=
null
;
if
(
StringUtils
.
isNotEmpty
(
conditions
))
{
str
=
conditions
.
split
(
","
);
}
ArrayOfString
aos
=
new
ArrayOfString
();
if
(
ArrayUtils
.
isNotEmpty
(
str
))
{
aos
.
getString
().
addAll
(
new
ArrayList
<
String
>(
Arrays
.
asList
(
str
)));
}
ArrayOfWorkflowBaseInfo
bas
=
workflowServicePortType
.
getCreateWorkflowTypeList
(
dto
.
getPageNo
(),
dto
.
getPageSize
(),
dto
.
getRecordCount
(),
dto
.
getUserid
(),
aos
);
return
bas
.
getWorkflowBaseInfo
();
}
@Override
public
WorkflowRequestInfo
getWorkflowRequest
(
QueryWorkflowDetailDto
dto
)
{
return
workflowServicePortType
.
getWorkflowRequest
(
dto
.
getRequestid
(),
dto
.
getUserid
(),
dto
.
getFromrequestid
());
}
@Override
public
void
afterPropertiesSet
()
{
try
{
oaWsdlUrl
=
baseUrl
+
"/services/WorkflowService?wsdl"
;
WorkflowService
workflowService
=
new
WorkflowService
(
new
URL
(
oaWsdlUrl
));
workflowServicePortType
=
workflowService
.
getWorkflowServiceHttpPort
();
restTemplate
=
new
RestTemplate
();
}
catch
(
MalformedURLException
e
)
{
log
.
error
(
"请求oa流程接口异常:{}"
,
e
.
getMessage
(),
e
);
}
}
@Override
public
void
redirectOA
(
Map
<
String
,
String
>
paraMap
)
{
}
}
src/main/java/com/dianmi/ws/WorkflowBaseInfo.java
View file @
8218da17
...
...
@@ -39,13 +39,13 @@ import javax.xml.bind.annotation.XmlType;
public
class
WorkflowBaseInfo
{
@XmlElement
(
nillable
=
true
)
protected
String
workflowId
;
//工作流ID
protected
String
workflowId
;
@XmlElement
(
nillable
=
true
)
protected
String
workflowName
;
//工作流标题
protected
String
workflowName
;
@XmlElement
(
nillable
=
true
)
protected
String
workflowTypeId
;
//工作流类型ID
protected
String
workflowTypeId
;
@XmlElement
(
nillable
=
true
)
protected
String
workflowTypeName
;
//工作流类型名称
protected
String
workflowTypeName
;
/**
* 获取workflowId属性的值。
...
...
src/main/java/com/dianmi/ws/WorkflowRequestInfo.java
View file @
8218da17
...
...
@@ -105,7 +105,7 @@ public class WorkflowRequestInfo {
@XmlElement
(
nillable
=
true
)
protected
String
currentNodeId
;
@XmlElement
(
nillable
=
true
)
protected
String
currentNodeName
;
//当前节点名称
protected
String
currentNodeName
;
@XmlElement
(
nillable
=
true
)
protected
String
forwardButtonName
;
@XmlElement
(
nillable
=
true
)
...
...
@@ -115,7 +115,7 @@ public class WorkflowRequestInfo {
@XmlElement
(
nillable
=
true
)
protected
String
lastOperatorName
;
@XmlElement
(
nillable
=
true
)
protected
String
messageType
;
//短信提醒
protected
String
messageType
;
protected
Boolean
mustInputRemark
;
protected
Boolean
needAffirmance
;
@XmlElement
(
nillable
=
true
)
...
...
@@ -125,11 +125,11 @@ public class WorkflowRequestInfo {
@XmlElement
(
nillable
=
true
)
protected
String
remark
;
@XmlElement
(
nillable
=
true
)
protected
String
requestId
;
//请求ID
protected
String
requestId
;
@XmlElement
(
nillable
=
true
)
protected
String
requestLevel
;
@XmlElement
(
nillable
=
true
)
protected
String
requestName
;
//请求标题
protected
String
requestName
;
@XmlElement
(
nillable
=
true
)
protected
String
secLevel
;
@XmlElement
(
nillable
=
true
)
...
...
@@ -141,15 +141,15 @@ public class WorkflowRequestInfo {
@XmlElement
(
nillable
=
true
)
protected
String
subnobackButtonName
;
@XmlElement
(
nillable
=
true
)
protected
WorkflowBaseInfo
workflowBaseInfo
;
//流程类型
protected
WorkflowBaseInfo
workflowBaseInfo
;
@XmlElement
(
nillable
=
true
)
protected
ArrayOfWorkflowDetailTableInfo
workflowDetailTableInfos
;
//明细表类
protected
ArrayOfWorkflowDetailTableInfo
workflowDetailTableInfos
;
@XmlElement
(
nillable
=
true
)
protected
ArrayOfString
workflowHtmlShow
;
@XmlElement
(
nillable
=
true
)
protected
ArrayOfString
workflowHtmlTemplete
;
@XmlElement
(
nillable
=
true
)
protected
WorkflowMainTableInfo
workflowMainTableInfo
;
//主表类
protected
WorkflowMainTableInfo
workflowMainTableInfo
;
@XmlElement
(
nillable
=
true
)
protected
ArrayOfArrayOfString
workflowPhrases
;
@XmlElement
(
nillable
=
true
)
...
...
src/main/java/com/dianmi/ws/WorkflowService.java
View file @
8218da17
...
...
@@ -10,7 +10,7 @@ import javax.xml.ws.Service;
/**
* This class was generated by Apache CXF 3.3.9
* 2021-03-
18T14:16:04.152
+08:00
* 2021-03-
23T14:30:20.449
+08:00
* Generated source version: 3.3.9
*
*/
...
...
src/main/java/com/dianmi/ws/WorkflowServicePortType.java
View file @
8218da17
...
...
@@ -10,7 +10,7 @@ import javax.xml.ws.ResponseWrapper;
/**
* This class was generated by Apache CXF 3.3.9
* 2021-03-
18T14:16:04.114
+08:00
* 2021-03-
23T14:30:20.409
+08:00
* Generated source version: 3.3.9
*
*/
...
...
src/test/java/com/dianmi/RequestCreateDemo.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dianmi.entity.WorkflowDetailTableInfoEntity
;
import
com.dianmi.entity.WorkflowRequestTableField
;
import
com.dianmi.entity.WorkflowRequestTableRecord
;
import
com.dianmi.util.HttpManager
;
import
com.dianmi.util.IdentityVerifyUtil
;
/**
* 流程创建实例
* description :
* author :JHY
* date : 2020/4/29
* version : 1.0
*/
public
class
RequestCreateDemo
{
public
static
void
main
(
String
[]
args
)
{
RequestCreateDemo
demo
=
new
RequestCreateDemo
();
demo
.
createRequest
(
"A5"
,
"1"
);
}
/**
* 创建流程入口
* @param requestnamesuffix
* @param userid
*/
public
void
createRequest
(
String
requestnamesuffix
,
String
userid
)
{
IdentityVerifyUtil
identityVerifyUtil
=
IdentityVerifyUtil
.
getInstance
();
String
spk
=
identityVerifyUtil
.
getSPK
();
String
secret
=
identityVerifyUtil
.
getSECRET
();
String
token
=
identityVerifyUtil
.
getToken
();
if
(
spk
==
null
||
secret
==
null
||
token
==
null
)
{
return
;
}
String
url
=
IdentityVerifyUtil
.
HOST
+
"/api/workflow/paService/getCreateWorkflowList"
;
HttpManager
http
=
new
HttpManager
();
Map
<
String
,
String
>
heads
=
IdentityVerifyUtil
.
getHttpHeads
(
token
,
userid
,
spk
);
Map
<
String
,
String
>
params
=
new
HashMap
<>();
/*params.put("requestName", "2020-04月考勤报表确认(采购部)--" + requestnamesuffix);
params.put("mainData", getFormMainData());
params.put("detailData",getFormDetailData());
params.put("workflowId", "45");
params.put("remark","restful接口创建流程测试");*/
params
.
put
(
"conditions"
,
"{\"wfTypeIds\":1}"
);
try
{
String
res
=
http
.
postDataSSL
(
url
,
params
,
heads
);
System
.
out
.
println
(
"请求结果:"
+
res
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 主表数据
*
* 附件上传 包含base64, http等
* 包含浏览框数据,单行文本数据
* @return
*/
private
String
getFormMainData
(){
List
<
WorkflowRequestTableField
>
mainData
=
new
ArrayList
<>();
WorkflowRequestTableField
field1
=
new
WorkflowRequestTableField
();
//附件上传字段
field1
.
setFieldName
(
"tpsc"
);
List
<
Map
<
String
,
String
>>
fileInfo
=
new
ArrayList
<>();
Map
<
String
,
String
>
fileItem1
=
new
HashMap
<>();
fileItem1
.
put
(
"fileName"
,
"t01d0b9e7421ad092b5.jpg"
);
String
str1
=
"base64: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"
;
fileItem1
.
put
(
"filePath"
,
str1
);
fileInfo
.
add
(
fileItem1
);
Map
<
String
,
String
>
fileItem2
=
new
HashMap
<>();
fileItem2
.
put
(
"fileName"
,
"scm_8802d1a86_4.png"
);
fileItem2
.
put
(
"filePath"
,
"http://scm.ddimg.mobi/scm_8802d1a86_4.png"
);
//fileInfo.add(fileItem2);
field1
.
setFieldValue
(
JSONObject
.
toJSONString
(
fileInfo
));
mainData
.
add
(
field1
);
//单行文本字段
WorkflowRequestTableField
field2
=
new
WorkflowRequestTableField
();
field2
.
setFieldName
(
"dhwb"
);
field2
.
setFieldValue
(
"create request demo"
);
mainData
.
add
(
field2
);
//单人力资源字段
WorkflowRequestTableField
field3
=
new
WorkflowRequestTableField
();
field3
.
setFieldName
(
"drlzy"
);
field3
.
setFieldValue
(
"2979"
);
mainData
.
add
(
field3
);
return
JSONObject
.
toJSONString
(
mainData
);
}
/**
* 明细数据
* @return
*/
private
String
getFormDetailData
(){
List
<
WorkflowDetailTableInfoEntity
>
details
=
new
ArrayList
<>();
//明细信息
WorkflowDetailTableInfoEntity
detail1
=
new
WorkflowDetailTableInfoEntity
();
detail1
.
setTableDBName
(
"formtable_main_1356_dt1"
);
//明细数据
List
<
WorkflowRequestTableRecord
>
detailRows
=
new
ArrayList
<>();
WorkflowRequestTableRecord
row1
=
new
WorkflowRequestTableRecord
();
//明细行数据
List
<
WorkflowRequestTableField
>
rowDatas
=
new
ArrayList
<>();
//行字段数据
WorkflowRequestTableField
field1
=
new
WorkflowRequestTableField
();
field1
.
setFieldName
(
"dhwb"
);
field1
.
setFieldValue
(
"test01"
);
rowDatas
.
add
(
field1
);
WorkflowRequestTableField
field2
=
new
WorkflowRequestTableField
();
field2
.
setFieldName
(
"drl"
);
field2
.
setFieldValue
(
"2978,2979"
);
rowDatas
.
add
(
field2
);
row1
.
setRecordOrder
(
0
);
row1
.
setWorkflowRequestTableFields
(
rowDatas
);
detailRows
.
add
(
row1
);
detail1
.
setWorkflowRequestTableRecords
(
detailRows
);
details
.
add
(
detail1
);
return
JSONObject
.
toJSONString
(
details
);
}
}
src/test/java/com/dianmi/RequestRejectDemo.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
;
import
java.util.HashMap
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dianmi.util.HttpManager
;
import
com.dianmi.util.IdentityVerifyUtil
;
/**
* 流程退回实例
* description :
* author :JHY
* date : 2020/6/4
* version : 1.0
*/
public
class
RequestRejectDemo
{
public
static
void
main
(
String
[]
args
)
{
rejectRequest
(
"3466560"
,
"2979"
);
}
/**
* 流程退回
*/
public
static
void
rejectRequest
(
String
requestid
,
String
userid
)
{
IdentityVerifyUtil
identityVerifyUtil
=
IdentityVerifyUtil
.
getInstance
();
String
spk
=
identityVerifyUtil
.
getSPK
();
String
secret
=
identityVerifyUtil
.
getSECRET
();
String
token
=
identityVerifyUtil
.
getToken
();
if
(
spk
==
null
||
secret
==
null
||
token
==
null
)
{
return
;
}
Map
<
String
,
String
>
heads
=
IdentityVerifyUtil
.
getHttpHeads
(
token
,
userid
,
spk
);
String
url
=
IdentityVerifyUtil
.
HOST
+
"/api/workflow/paService/rejectRequest"
;
HttpManager
http
=
new
HttpManager
();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
params
.
put
(
"requestId"
,
requestid
);
params
.
put
(
"remark"
,
"restful接口退回流程测试"
);
//默认是按出口退回
//自由退回参数设置
Map
<
String
,
String
>
otherParams
=
new
HashMap
<>();
otherParams
.
put
(
"RejectToType"
,
"0"
);
otherParams
.
put
(
"RejectToNodeid"
,
"3974"
);
params
.
put
(
"otherParams"
,
JSONObject
.
toJSONString
(
otherParams
));
try
{
String
res
=
http
.
postDataSSL
(
url
,
params
,
heads
);
System
.
out
.
println
(
res
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
src/test/java/com/dianmi/RequestSubmitDemo.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dianmi.entity.WorkflowDetailTableInfoEntity
;
import
com.dianmi.entity.WorkflowRequestTableField
;
import
com.dianmi.entity.WorkflowRequestTableRecord
;
import
com.dianmi.util.HttpManager
;
import
com.dianmi.util.IdentityVerifyUtil
;
/**
* 流程提交实例
* description :
* author :JHY
* date : 2020/6/4
* version : 1.0
*/
public
class
RequestSubmitDemo
{
public
static
void
main
(
String
[]
args
)
{
RequestSubmitDemo
submitDemo
=
new
RequestSubmitDemo
();
submitDemo
.
submitRequest
(
"3467562"
,
"2982"
);
}
public
void
submitRequest
(
String
requestid
,
String
userid
)
{
IdentityVerifyUtil
identityVerifyUtil
=
IdentityVerifyUtil
.
getInstance
();
String
spk
=
identityVerifyUtil
.
getSPK
();
String
secret
=
identityVerifyUtil
.
getSECRET
();
String
token
=
identityVerifyUtil
.
getToken
();
if
(
spk
==
null
||
secret
==
null
||
token
==
null
)
{
return
;
}
Map
<
String
,
String
>
heads
=
IdentityVerifyUtil
.
getHttpHeads
(
token
,
userid
,
spk
);
String
url
=
IdentityVerifyUtil
.
HOST
+
"/api/workflow/paService/submitRequest"
;
HttpManager
http
=
new
HttpManager
();
Map
<
String
,
String
>
params
=
new
HashMap
<>();
params
.
put
(
"requestId"
,
requestid
);
params
.
put
(
"detailData"
,
getFormDetailData
());
params
.
put
(
"remark"
,
"restful接口提交流程测试"
);
try
{
String
result
=
http
.
postDataSSL
(
url
,
params
,
heads
);
System
.
out
.
println
(
result
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
/**
* 流程提交明细数据处理
* 涉及到明细 数据删除、修改、新增
*
* @return
*/
private
String
getFormDetailData
()
{
List
<
WorkflowDetailTableInfoEntity
>
details
=
new
ArrayList
<>();
//明细信息
WorkflowDetailTableInfoEntity
detail1
=
new
WorkflowDetailTableInfoEntity
();
detail1
.
setTableDBName
(
"formtable_main_1356_dt1"
);
//删除明细行ID
detail1
.
setDeleteKeys
(
"344"
);
//明细数据
List
<
WorkflowRequestTableRecord
>
detailRows
=
new
ArrayList
<>();
WorkflowRequestTableRecord
row1
=
new
WorkflowRequestTableRecord
();
//明细行数据
List
<
WorkflowRequestTableField
>
row1Datas
=
new
ArrayList
<>();
//行字段数据
WorkflowRequestTableField
row1field1
=
new
WorkflowRequestTableField
();
row1field1
.
setFieldName
(
"dhwb"
);
row1field1
.
setFieldValue
(
"test02"
);
row1Datas
.
add
(
row1field1
);
WorkflowRequestTableField
row1field2
=
new
WorkflowRequestTableField
();
row1field2
.
setFieldName
(
"drl"
);
row1field2
.
setFieldValue
(
"2978,2980,2981"
);
row1Datas
.
add
(
row1field2
);
row1
.
setRecordOrder
(
0
);
row1
.
setWorkflowRequestTableFields
(
row1Datas
);
//明细行2
WorkflowRequestTableRecord
row2
=
new
WorkflowRequestTableRecord
();
List
<
WorkflowRequestTableField
>
row2Datas
=
new
ArrayList
<>();
//行字段数据
WorkflowRequestTableField
row2field1
=
new
WorkflowRequestTableField
();
row2field1
.
setFieldName
(
"dhwb"
);
row2field1
.
setFieldValue
(
"test01-update-338"
);
row2Datas
.
add
(
row2field1
);
//行字段数据
WorkflowRequestTableField
row2field2
=
new
WorkflowRequestTableField
();
row2field2
.
setFieldName
(
"drl"
);
row2field2
.
setFieldValue
(
"2982,2983"
);
row2Datas
.
add
(
row2field2
);
row2
.
setRecordOrder
(
338
);
row2
.
setWorkflowRequestTableFields
(
row2Datas
);
//明细行3
WorkflowRequestTableRecord
row3
=
new
WorkflowRequestTableRecord
();
List
<
WorkflowRequestTableField
>
row3Datas
=
new
ArrayList
<>();
//行字段数据
WorkflowRequestTableField
row3field1
=
new
WorkflowRequestTableField
();
row3field1
.
setFieldName
(
"dhwb"
);
row3field1
.
setFieldValue
(
"test01-update"
);
row3Datas
.
add
(
row3field1
);
row3
.
setRecordOrder
(
348
);
row3
.
setWorkflowRequestTableFields
(
row3Datas
);
//明细行4
WorkflowRequestTableRecord
row4
=
new
WorkflowRequestTableRecord
();
List
<
WorkflowRequestTableField
>
row4Datas
=
new
ArrayList
<>();
//行字段数据
WorkflowRequestTableField
row4field1
=
new
WorkflowRequestTableField
();
row4field1
.
setFieldName
(
"dhwb"
);
row4field1
.
setFieldValue
(
"test01-update-339"
);
row4Datas
.
add
(
row4field1
);
//行字段数据
WorkflowRequestTableField
row4field2
=
new
WorkflowRequestTableField
();
row4field2
.
setFieldName
(
"xlk"
);
row4field2
.
setFieldValue
(
"2"
);
row4Datas
.
add
(
row4field2
);
row4
.
setRecordOrder
(
349
);
row4
.
setWorkflowRequestTableFields
(
row4Datas
);
detailRows
.
add
(
row2
);
detailRows
.
add
(
row4
);
detailRows
.
add
(
row3
);
detailRows
.
add
(
row1
);
detail1
.
setWorkflowRequestTableRecords
(
detailRows
);
details
.
add
(
detail1
);
return
JSONObject
.
toJSONString
(
details
);
}
}
src/test/java/com/dianmi/WsTest.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
org.apache.commons.lang.builder.ToStringBuilder
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dianmi.ws.ArrayOfString
;
import
com.dianmi.ws.WorkflowRequestInfo
;
import
com.dianmi.ws.WorkflowService
;
public
class
WsTest
{
public
static
void
main
(
String
[]
args
)
{
try
{
WorkflowService
workflowService
=
new
WorkflowService
(
new
URL
(
"http://120.132.8.136/services/WorkflowService?wsdl"
));
//WorkflowRequestInfo wo = workflowService.getWorkflowServiceHttpPort().
// getWorkflowRequest(62067, 1, 0);
//System.out.println(JSONObject.toJSONString(wo));
ArrayOfString
aos
=
new
ArrayOfString
();
//aos.getString().add("workflowId=45");
System
.
out
.
println
(
JSONObject
.
toJSONString
(
workflowService
.
getWorkflowServiceHttpPort
()
.
getCreateWorkflowList
(
1
,
20
,
100
,
1
,
23
,
aos
)));
}
catch
(
MalformedURLException
e
)
{
// TODO Auto-generated catch block
e
.
printStackTrace
();
}
}
}
src/test/java/com/dianmi/entity/WorkflowDetailTableInfoEntity.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
.
entity
;
import
java.io.Serializable
;
import
java.util.List
;
/**
* description :
* author :JHY
* date : 2020/5/13
* version : 1.0
*/
public
class
WorkflowDetailTableInfoEntity
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
1328729781044551608L
;
/**
* 明细表标题
*/
private
String
tableTitle
;
/**
* 数据库明细表名
*/
private
String
tableDBName
;
/**
* 明细表字段名称
*/
private
String
[]
tableFieldName
;
/**
* 删除数据ID
*/
private
String
deleteKeys
;
/**
* 明细表列表
*/
private
List
<
WorkflowRequestTableRecord
>
workflowRequestTableRecords
;
public
String
getTableTitle
()
{
return
tableTitle
;
}
public
void
setTableTitle
(
String
tableTitle
)
{
this
.
tableTitle
=
tableTitle
;
}
public
String
getTableDBName
()
{
return
tableDBName
;
}
public
void
setTableDBName
(
String
tableDBName
)
{
this
.
tableDBName
=
tableDBName
;
}
public
String
[]
getTableFieldName
()
{
return
tableFieldName
;
}
public
void
setTableFieldName
(
String
[]
tableFieldName
)
{
this
.
tableFieldName
=
tableFieldName
;
}
public
List
<
WorkflowRequestTableRecord
>
getWorkflowRequestTableRecords
()
{
return
workflowRequestTableRecords
;
}
public
void
setWorkflowRequestTableRecords
(
List
<
WorkflowRequestTableRecord
>
workflowRequestTableRecords
)
{
this
.
workflowRequestTableRecords
=
workflowRequestTableRecords
;
}
public
String
getDeleteKeys
()
{
return
deleteKeys
;
}
public
void
setDeleteKeys
(
String
deleteKeys
)
{
this
.
deleteKeys
=
deleteKeys
;
}
}
src/test/java/com/dianmi/entity/WorkflowRequestTableField.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
.
entity
;
import
java.io.Serializable
;
/**
* 工作流字段信息
*/
public
class
WorkflowRequestTableField
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
-
2865596549306206630L
;
/**
* 字段ID
*/
private
String
fieldId
;
/**
* 字段名称
*/
private
String
fieldName
;
/**
* 字段值
*/
private
String
fieldValue
;
/**
* 界面字段表现形式
*/
private
String
fieldHtmlType
;
/**
* 界面字段类型
*/
private
String
fieldType
;
/**
* 数据库字段类型
*/
private
String
fieldDBType
;
/**
* 表单中提交的字段名
*/
private
String
fieldFormName
;
/**
* 显示顺序
*/
private
int
fieldOrder
;
/**
* 是否显示
*/
private
boolean
isView
;
/**
* 是否可编辑
*/
private
boolean
isEdit
;
/**
* 是否必填
*/
private
boolean
isMand
;
/**
* 显示字段名称
*/
private
String
fieldShowName
;
/**
* 浏览框字段URL
*/
private
String
browserurl
;
/**
* 下拉框字段信息
*/
private
String
[]
selectnames
;
private
String
[]
selectvalues
;
/**
* 显示字段值
*/
private
String
fieldShowValue
;
/**
* 字段html显示
*/
private
String
filedHtmlShow
;
public
String
getFieldName
()
{
return
fieldName
;
}
public
void
setFieldName
(
String
fieldName
)
{
this
.
fieldName
=
fieldName
;
}
public
String
getFieldValue
()
{
return
fieldValue
;
}
public
void
setFieldValue
(
String
fieldValue
)
{
this
.
fieldValue
=
fieldValue
;
}
public
String
getFieldHtmlType
()
{
return
fieldHtmlType
;
}
public
void
setFieldHtmlType
(
String
fieldHtmlType
)
{
this
.
fieldHtmlType
=
fieldHtmlType
;
}
public
String
getFieldType
()
{
return
fieldType
;
}
public
void
setFieldType
(
String
fieldType
)
{
this
.
fieldType
=
fieldType
;
}
public
String
getFieldDBType
()
{
return
fieldDBType
;
}
public
void
setFieldDBType
(
String
fieldDBType
)
{
this
.
fieldDBType
=
fieldDBType
;
}
public
String
getFieldFormName
()
{
return
fieldFormName
;
}
public
void
setFieldFormName
(
String
fieldFormName
)
{
this
.
fieldFormName
=
fieldFormName
;
}
public
int
getFieldOrder
()
{
return
fieldOrder
;
}
public
void
setFieldOrder
(
int
fieldOrder
)
{
this
.
fieldOrder
=
fieldOrder
;
}
public
boolean
isView
()
{
return
isView
;
}
public
void
setView
(
boolean
isView
)
{
this
.
isView
=
isView
;
}
public
boolean
isEdit
()
{
return
isEdit
;
}
public
void
setEdit
(
boolean
isEdit
)
{
this
.
isEdit
=
isEdit
;
}
public
boolean
isMand
()
{
return
isMand
;
}
public
void
setMand
(
boolean
isMand
)
{
this
.
isMand
=
isMand
;
}
public
String
getFieldShowName
()
{
return
fieldShowName
;
}
public
void
setFieldShowName
(
String
fieldShowName
)
{
this
.
fieldShowName
=
fieldShowName
;
}
public
String
getFieldShowValue
()
{
return
fieldShowValue
;
}
public
void
setFieldShowValue
(
String
fieldShowValue
)
{
this
.
fieldShowValue
=
fieldShowValue
;
}
public
String
getBrowserurl
()
{
return
browserurl
;
}
public
void
setBrowserurl
(
String
browserurl
)
{
this
.
browserurl
=
browserurl
;
}
public
String
[]
getSelectnames
()
{
return
selectnames
;
}
public
void
setSelectnames
(
String
[]
selectnames
)
{
this
.
selectnames
=
selectnames
;
}
public
String
[]
getSelectvalues
()
{
return
selectvalues
;
}
public
void
setSelectvalues
(
String
[]
selectvalues
)
{
this
.
selectvalues
=
selectvalues
;
}
public
String
getFiledHtmlShow
()
{
return
filedHtmlShow
;
}
public
void
setFiledHtmlShow
(
String
filedHtmlShow
)
{
this
.
filedHtmlShow
=
filedHtmlShow
;
}
public
String
getFieldId
()
{
return
fieldId
;
}
public
void
setFieldId
(
String
fieldId
)
{
this
.
fieldId
=
fieldId
;
}
}
src/test/java/com/dianmi/entity/WorkflowRequestTableRecord.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
.
entity
;
import
java.io.Serializable
;
import
java.util.List
;
public
class
WorkflowRequestTableRecord
implements
Serializable
{
/**
*
*/
private
static
final
long
serialVersionUID
=
-
202638298244870735L
;
//修改时明细行ID,新增时赋0
private
int
recordOrder
;
private
List
<
WorkflowRequestTableField
>
workflowRequestTableFields
;
public
int
getRecordOrder
()
{
return
recordOrder
;
}
public
void
setRecordOrder
(
int
recordOrder
)
{
this
.
recordOrder
=
recordOrder
;
}
public
List
<
WorkflowRequestTableField
>
getWorkflowRequestTableFields
()
{
return
workflowRequestTableFields
;
}
public
void
setWorkflowRequestTableFields
(
List
<
WorkflowRequestTableField
>
workflowRequestTableFields
)
{
this
.
workflowRequestTableFields
=
workflowRequestTableFields
;
}
}
src/test/java/com/dianmi/util/HttpManager.java
0 → 100644
View file @
8218da17
/*
*
* Copyright (c) 2001-2018 泛微软件.
* 泛微协同商务系统,版权所有.
*
*/
package
com
.
dianmi
.
util
;
import
java.io.ByteArrayOutputStream
;
import
java.io.File
;
import
java.io.FileInputStream
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
import
java.io.InputStream
;
import
java.io.InputStreamReader
;
import
java.io.OutputStream
;
import
java.io.UnsupportedEncodingException
;
import
java.net.URISyntaxException
;
import
java.security.KeyManagementException
;
import
java.security.NoSuchAlgorithmException
;
import
java.security.cert.CertificateException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
javax.net.ssl.SSLContext
;
import
javax.net.ssl.TrustManager
;
import
javax.net.ssl.X509TrustManager
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.apache.http.Header
;
import
org.apache.http.HeaderElement
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.NameValuePair
;
import
org.apache.http.client.ClientProtocolException
;
import
org.apache.http.client.CookieStore
;
import
org.apache.http.client.config.RequestConfig
;
import
org.apache.http.client.entity.UrlEncodedFormEntity
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.HttpDelete
;
import
org.apache.http.client.methods.HttpGet
;
import
org.apache.http.client.methods.HttpPatch
;
import
org.apache.http.client.methods.HttpPost
;
import
org.apache.http.client.methods.HttpPut
;
import
org.apache.http.client.utils.URIBuilder
;
import
org.apache.http.config.Registry
;
import
org.apache.http.config.RegistryBuilder
;
import
org.apache.http.conn.HttpHostConnectException
;
import
org.apache.http.conn.socket.ConnectionSocketFactory
;
import
org.apache.http.conn.socket.PlainConnectionSocketFactory
;
import
org.apache.http.conn.ssl.SSLConnectionSocketFactory
;
import
org.apache.http.entity.ByteArrayEntity
;
import
org.apache.http.entity.ContentType
;
import
org.apache.http.entity.mime.MultipartEntityBuilder
;
import
org.apache.http.impl.client.BasicCookieStore
;
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.apache.http.util.CharArrayBuffer
;
import
org.apache.http.util.EntityUtils
;
/**
* HttpManager http操作管理工具
*
* @author AndyZhang 2018-8-20
* 1 支持传输json为内容的数据 10-20
* 2 更新所有的操作 CURD 包含上传 下载 全了 11-23
* @version 1.0
*/
public
class
HttpManager
{
private
static
final
Log
logger
=
LogFactory
.
getLog
(
HttpManager
.
class
);
public
CookieStore
cookieStore
=
new
BasicCookieStore
();
private
CloseableHttpClient
getHttpClientSSL
()
throws
KeyManagementException
,
NoSuchAlgorithmException
{
SSLContext
sslcontext
=
null
;
try
{
sslcontext
=
createIgnoreVerifySSL
();
}
catch
(
Exception
ex
)
{
//logger.error(ex.getMessage());
}
Registry
<
ConnectionSocketFactory
>
socketFactoryRegistry
;
if
(
sslcontext
!=
null
)
socketFactoryRegistry
=
RegistryBuilder
.<
ConnectionSocketFactory
>
create
()
.
register
(
"http"
,
PlainConnectionSocketFactory
.
INSTANCE
)
.
register
(
"https"
,
new
SSLConnectionSocketFactory
(
sslcontext
))
.
build
();
else
socketFactoryRegistry
=
RegistryBuilder
.<
ConnectionSocketFactory
>
create
()
.
register
(
"http"
,
PlainConnectionSocketFactory
.
INSTANCE
)
.
build
();
PoolingHttpClientConnectionManager
connManager
=
new
PoolingHttpClientConnectionManager
(
socketFactoryRegistry
);
HttpClients
.
custom
().
setConnectionManager
(
connManager
);
RequestConfig
defaultRequestConfig
=
RequestConfig
.
custom
()
.
setSocketTimeout
(
30000
)
.
setConnectTimeout
(
30000
)
.
setConnectionRequestTimeout
(
30000
)
.
setStaleConnectionCheckEnabled
(
true
)
.
build
();
CloseableHttpClient
client
=
HttpClients
.
custom
()
.
setConnectionManager
(
connManager
)
.
setDefaultCookieStore
(
cookieStore
)
.
setDefaultRequestConfig
(
defaultRequestConfig
)
.
build
();
return
client
;
}
private
CloseableHttpClient
getHttpClient
()
throws
KeyManagementException
,
NoSuchAlgorithmException
{
SSLContext
sslcontext
=
createIgnoreVerifySSL
();
Registry
<
ConnectionSocketFactory
>
socketFactoryRegistry
=
RegistryBuilder
.<
ConnectionSocketFactory
>
create
()
.
register
(
"http"
,
PlainConnectionSocketFactory
.
INSTANCE
)
.
build
();
PoolingHttpClientConnectionManager
connManager
=
new
PoolingHttpClientConnectionManager
(
socketFactoryRegistry
);
HttpClients
.
custom
().
setConnectionManager
(
connManager
);
RequestConfig
defaultRequestConfig
=
RequestConfig
.
custom
()
.
setSocketTimeout
(
5000
)
.
setConnectTimeout
(
5000
)
.
setConnectionRequestTimeout
(
5000
)
.
setStaleConnectionCheckEnabled
(
true
)
.
build
();
CloseableHttpClient
client
=
HttpClients
.
custom
()
.
setConnectionManager
(
connManager
)
.
setDefaultCookieStore
(
cookieStore
)
.
setDefaultRequestConfig
(
defaultRequestConfig
)
.
build
();
return
client
;
}
/**
* get请求,参数放在map里
*
* @param url 请求地址
* @param param 参数map
* @return 响应
*/
public
String
getData
(
String
url
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
HttpClients
.
createDefault
();
CloseableHttpResponse
response
=
null
;
try
{
URIBuilder
builder
=
new
URIBuilder
(
url
);
for
(
Map
.
Entry
<
String
,
String
>
entry
:
param
.
entrySet
())
{
builder
.
addParameter
(
entry
.
getKey
(),
entry
.
getValue
());
}
HttpGet
get
=
new
HttpGet
(
builder
.
build
());
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
get
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
get
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
URISyntaxException
e
)
{
e
.
printStackTrace
();
}
catch
(
ClientProtocolException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* get请求,参数放在map里
*
* @param url
* @param param
* @return
*/
public
String
getData
(
String
url
,
Map
<
String
,
String
>
param
)
{
return
getData
(
url
,
param
,
null
);
}
public
String
getDataSSL
(
String
url
,
Map
<
String
,
String
>
param
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
return
getDataSSL
(
url
,
param
,
null
);
}
/**
* SSL协议 get请求,参数放在map里
*
* @param url 请求地址
* @param param 参数map
* @return 响应
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public
String
getDataSSL
(
String
url
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
CloseableHttpResponse
response
=
null
;
try
{
URIBuilder
builder
=
new
URIBuilder
(
url
);
for
(
Map
.
Entry
<
String
,
String
>
entry
:
param
.
entrySet
())
{
builder
.
addParameter
(
entry
.
getKey
(),
entry
.
getValue
());
}
HttpGet
get
=
new
HttpGet
(
builder
.
build
());
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
get
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
get
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
URISyntaxException
|
ClientProtocolException
|
HttpHostConnectException
e
)
{
logger
.
error
(
"请求地址:"
+
url
+
",请求参数:"
+
param
+
",响应数据:"
+
result
);
e
.
printStackTrace
();
throw
new
KeyManagementException
(
e
);
}
catch
(
IOException
e
)
{
logger
.
error
(
"请求地址:"
+
url
+
",请求参数:"
+
param
+
",响应数据:"
+
result
);
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* SSL协议 get请求,参数放在map里 参数直接拼接在url后面
*
* @param url 请求地址
* @param param 参数map
* @return 响应
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public
String
getDataSSLUrl
(
String
url
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
CloseableHttpResponse
response
=
null
;
try
{
StringBuilder
stringBuilder
=
new
StringBuilder
();
if
(
param
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
param
.
entrySet
())
{
stringBuilder
.
append
(
entry
.
getKey
());
if
(
entry
.
getValue
()
!=
null
)
stringBuilder
.
append
(
"="
).
append
(
entry
.
getValue
());
stringBuilder
.
append
(
"&"
);
}
if
(
stringBuilder
.
length
()
>
0
)
url
=
addUrlParam
(
url
,
stringBuilder
.
substring
(
0
,
stringBuilder
.
length
()
-
1
));
URIBuilder
builder
=
new
URIBuilder
(
url
);
// for(Map.Entry<String,String> entry : param.entrySet())
// {
// builder.addParameter(entry.getKey(),entry.getValue());
// }
//
//
HttpGet
get
=
new
HttpGet
(
builder
.
build
());
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
get
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
get
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
URISyntaxException
|
ClientProtocolException
|
HttpHostConnectException
e
)
{
logger
.
error
(
"请求地址:"
+
url
+
",请求参数:"
+
param
+
",响应数据:"
+
result
);
e
.
printStackTrace
();
throw
new
KeyManagementException
(
e
);
}
catch
(
IOException
e
)
{
logger
.
error
(
"请求地址:"
+
url
+
",请求参数:"
+
param
+
",响应数据:"
+
result
);
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* SSL协议 delete请求,参数放在map里
*
* @param url 请求地址
* @param param 参数map
* @return 响应
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public
String
patchDataSSL
(
String
url
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
CloseableHttpResponse
response
=
null
;
try
{
URIBuilder
builder
=
new
URIBuilder
(
url
);
for
(
Map
.
Entry
<
String
,
String
>
entry
:
param
.
entrySet
())
{
builder
.
addParameter
(
entry
.
getKey
(),
entry
.
getValue
());
}
HttpPatch
patch
=
new
HttpPatch
(
builder
.
build
());
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
patch
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
patch
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
URISyntaxException
e
)
{
e
.
printStackTrace
();
}
catch
(
ClientProtocolException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* SSL协议 delete请求,参数放在map里
*
* @param url 请求地址
* @param param 参数map
* @return 响应
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public
String
putDataSSL
(
String
url
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
CloseableHttpResponse
response
=
null
;
try
{
URIBuilder
builder
=
new
URIBuilder
(
url
);
for
(
Map
.
Entry
<
String
,
String
>
entry
:
param
.
entrySet
())
{
builder
.
addParameter
(
entry
.
getKey
(),
entry
.
getValue
());
}
HttpPut
put
=
new
HttpPut
(
builder
.
build
());
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
put
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
put
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
URISyntaxException
e
)
{
e
.
printStackTrace
();
}
catch
(
ClientProtocolException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* SSL协议 delete请求,参数放在map里
*
* @param url 请求地址
* @param param 参数map
* @return 响应
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public
String
deleteDataSSL
(
String
url
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
CloseableHttpResponse
response
=
null
;
try
{
URIBuilder
builder
=
new
URIBuilder
(
url
);
for
(
Map
.
Entry
<
String
,
String
>
entry
:
param
.
entrySet
())
{
builder
.
addParameter
(
entry
.
getKey
(),
entry
.
getValue
());
}
HttpDelete
delete
=
new
HttpDelete
(
builder
.
build
());
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
delete
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
delete
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
URISyntaxException
e
)
{
e
.
printStackTrace
();
}
catch
(
ClientProtocolException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* 发送post请求,参数用map接收
*
* @param url 地址
* @param param 参数
* @return 返回值
*/
public
String
postData
(
String
url
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
HttpClients
.
createDefault
();
HttpPost
post
=
new
HttpPost
(
url
);
List
<
NameValuePair
>
pairs
=
new
ArrayList
<
NameValuePair
>();
for
(
Map
.
Entry
<
String
,
String
>
entry
:
param
.
entrySet
())
{
pairs
.
add
(
new
BasicNameValuePair
(
entry
.
getKey
(),
entry
.
getValue
()));
}
CloseableHttpResponse
response
=
null
;
try
{
post
.
setEntity
(
new
UrlEncodedFormEntity
(
pairs
,
"UTF-8"
));
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
post
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
post
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
catch
(
ClientProtocolException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* 发送post请求,参数用map接收
*
* @param url 地址
* @param param 参数
* @return 返回值
*/
public
String
postData
(
String
url
,
Map
<
String
,
String
>
param
)
{
return
postData
(
url
,
param
,
null
);
}
/**
* SSL协议发送post请求,参数用map接收
*
* @param url 地址
* @param param 参数
* @return 返回值
*/
public
String
postDataSSL
(
String
url
,
Map
<
String
,
String
>
param
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
return
postDataSSL
(
url
,
param
,
null
);
}
/**
* SSL协议发送post请求,参数用map接收
*
* @param url 地址
* @param param 参数
* @return 返回值
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public
String
postDataSSL
(
String
url
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
HttpPost
post
=
new
HttpPost
(
url
);
List
<
NameValuePair
>
pairs
=
new
ArrayList
<
NameValuePair
>();
for
(
Map
.
Entry
<
String
,
String
>
entry
:
param
.
entrySet
())
{
pairs
.
add
(
new
BasicNameValuePair
(
entry
.
getKey
(),
entry
.
getValue
()));
}
CloseableHttpResponse
response
=
null
;
try
{
post
.
setEntity
(
new
UrlEncodedFormEntity
(
pairs
,
"UTF-8"
));
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
post
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
post
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
catch
(
ClientProtocolException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* post请求,参数为json字符串
*
* @param url 请求地址
* @param jsonString json字符串
* @return 响应
*/
public
String
postJsonData
(
String
url
,
String
jsonString
)
{
return
postJsonData
(
url
,
jsonString
,
null
);
}
/**
* post请求,参数为json字符串
*
* @param url 请求地址
* @param jsonString json字符串
* @return 响应
*/
public
String
postJsonData
(
String
url
,
String
jsonString
,
Map
<
String
,
String
>
headers
)
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
HttpClients
.
createDefault
();
HttpPost
post
=
new
HttpPost
(
url
);
CloseableHttpResponse
response
=
null
;
try
{
post
.
setEntity
(
new
ByteArrayEntity
(
jsonString
.
getBytes
(
"UTF-8"
)));
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
post
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
post
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
catch
(
ClientProtocolException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
/**
* post请求,参数为json字符串
*
* @param url 请求地址
* @param jsonString json字符串
* @return 响应
*/
public
String
postJsonDataSSL
(
String
url
,
String
jsonString
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
return
postJsonDataSSL
(
url
,
jsonString
,
null
);
}
/**
* post请求,参数为json字符串
*
* @param url 请求地址
* @param jsonString json字符串
* @return 响应
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public
String
postJsonDataSSL
(
String
url
,
String
jsonString
,
Map
<
String
,
String
>
headers
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
String
result
=
null
;
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
HttpPost
post
=
new
HttpPost
(
url
);
CloseableHttpResponse
response
=
null
;
try
{
post
.
setEntity
(
new
ByteArrayEntity
(
jsonString
.
getBytes
(
"UTF-8"
)));
post
.
setHeader
(
"Content-type"
,
"application/json"
);
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
post
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
response
=
httpClient
.
execute
(
post
);
if
(
response
!=
null
&&
response
.
getStatusLine
().
getStatusCode
()
==
200
)
{
HttpEntity
entity
=
response
.
getEntity
();
result
=
entityToString
(
entity
);
}
return
result
;
}
catch
(
UnsupportedEncodingException
e
)
{
e
.
printStackTrace
();
}
catch
(
ClientProtocolException
e
)
{
e
.
printStackTrace
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
if
(
response
!=
null
)
{
response
.
close
();
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
null
;
}
private
String
entityToString
(
HttpEntity
entity
)
throws
IOException
{
String
result
=
null
;
if
(
entity
!=
null
)
{
long
lenth
=
entity
.
getContentLength
();
if
(
lenth
!=
-
1
&&
lenth
<
2048
)
{
result
=
EntityUtils
.
toString
(
entity
,
"UTF-8"
);
}
else
{
InputStreamReader
reader1
=
new
InputStreamReader
(
entity
.
getContent
(),
"UTF-8"
);
CharArrayBuffer
buffer
=
new
CharArrayBuffer
(
2048
);
char
[]
tmp
=
new
char
[
1024
];
int
l
;
while
((
l
=
reader1
.
read
(
tmp
))
!=
-
1
)
{
buffer
.
append
(
tmp
,
0
,
l
);
}
result
=
buffer
.
toString
();
}
}
return
result
;
}
/**
* 绕过验证
*
* @return
* @throws NoSuchAlgorithmException
* @throws KeyManagementException
*/
public
SSLContext
createIgnoreVerifySSL
()
throws
NoSuchAlgorithmException
,
KeyManagementException
{
SSLContext
sc
=
SSLContext
.
getInstance
(
"SSLv3"
);
// 实现一个X509TrustManager接口,用于绕过验证,不用修改里面的方法
X509TrustManager
trustManager
=
new
X509TrustManager
()
{
@Override
public
void
checkClientTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
paramArrayOfX509Certificate
,
String
paramString
)
throws
CertificateException
{
}
@Override
public
void
checkServerTrusted
(
java
.
security
.
cert
.
X509Certificate
[]
paramArrayOfX509Certificate
,
String
paramString
)
throws
CertificateException
{
}
@Override
public
java
.
security
.
cert
.
X509Certificate
[]
getAcceptedIssuers
()
{
return
null
;
}
};
sc
.
init
(
null
,
new
TrustManager
[]{
trustManager
},
null
);
return
sc
;
}
/**
* 上传文件
*
* @param url
* @param filePath
* @param filekey
* @param headers
* @return
* @throws KeyManagementException
* @throws NoSuchAlgorithmException
*/
public
String
uploadFile
(
String
url
,
String
filePath
,
String
contentType
,
String
filekey
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
String
result
=
""
;
try
{
File
file
=
new
File
(
filePath
);
InputStream
inStream
=
new
FileInputStream
(
file
);
result
=
uploadFile
(
url
,
inStream
,
file
.
getName
(),
contentType
,
filekey
,
param
,
headers
);
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
finally
{
}
return
result
;
}
/**
* 上传文件
*
* @param url
* @param inStream
* @param fileName
* @param filekey
* @param headers
* @return
* @throws KeyManagementException
* @throws NoSuchAlgorithmException
*/
public
String
uploadFile
(
String
url
,
InputStream
inStream
,
String
fileName
,
String
contentType
,
String
filekey
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
throws
KeyManagementException
,
NoSuchAlgorithmException
{
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
String
result
=
""
;
try
{
HttpPost
httpPost
=
new
HttpPost
(
url
);
MultipartEntityBuilder
builder
=
MultipartEntityBuilder
.
create
();
builder
.
addBinaryBody
(
filekey
,
inStream
,
ContentType
.
create
(
contentType
),
fileName
);
for
(
Map
.
Entry
<
String
,
String
>
item
:
param
.
entrySet
())
{
builder
.
addTextBody
(
item
.
getKey
(),
item
.
getValue
());
}
if
(
headers
!=
null
)
for
(
Map
.
Entry
<
String
,
String
>
entry
:
headers
.
entrySet
())
{
httpPost
.
setHeader
(
entry
.
getKey
(),
entry
.
getValue
());
}
HttpEntity
entity
=
builder
.
build
();
httpPost
.
setEntity
(
entity
);
HttpResponse
response
=
httpClient
.
execute
(
httpPost
);
HttpEntity
responseEntity
=
response
.
getEntity
();
if
(
responseEntity
!=
null
)
{
result
=
EntityUtils
.
toString
(
responseEntity
,
"UTF-8"
);
}
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
finally
{
try
{
httpClient
.
close
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
}
return
result
;
}
/**
* 获取response header中Content-Disposition中的filename值
*
* @param response
* @return
*/
private
static
String
getFileName
(
HttpResponse
response
)
{
Header
contentHeader
=
response
.
getFirstHeader
(
"Content-Disposition"
);
String
filename
=
null
;
if
(
contentHeader
!=
null
)
{
HeaderElement
[]
values
=
contentHeader
.
getElements
();
if
(
values
.
length
==
1
)
{
NameValuePair
param
=
values
[
0
].
getParameterByName
(
"filename"
);
if
(
param
!=
null
)
{
try
{
filename
=
new
String
(
param
.
getValue
().
toString
().
getBytes
(
"ISO-8859-1"
),
"GBK"
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
return
filename
;
}
private
static
byte
[]
getbytes
(
InputStream
is
)
{
ByteArrayOutputStream
bos
=
new
ByteArrayOutputStream
();
try
{
byte
[]
b
=
new
byte
[
2048
];
int
n
=
0
;
while
((
n
=
is
.
read
(
b
))
!=
-
1
)
{
bos
.
write
(
b
,
0
,
n
);
}
return
bos
.
toByteArray
();
}
catch
(
Exception
e
)
{
}
finally
{
try
{
if
(
is
!=
null
)
{
is
.
close
();
}
}
catch
(
Exception
e
)
{
}
try
{
if
(
bos
!=
null
)
{
bos
.
close
();
}
}
catch
(
Exception
e
)
{
}
}
return
null
;
}
/**
* 根据url下载文件,保存到filepath中
*
* @param url
* @param param
* @return
*/
public
boolean
downloadFile
(
String
url
,
OutputStream
stream
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
{
try
{
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
HttpGet
httpget
=
new
HttpGet
(
url
);
HttpResponse
response
=
httpClient
.
execute
(
httpget
);
//info.setResult(result);
HttpEntity
entity
=
response
.
getEntity
();
InputStream
is
=
entity
.
getContent
();
byte
[]
buffer
=
new
byte
[
10
*
1024
];
int
ch
=
0
;
while
((
ch
=
is
.
read
(
buffer
))
!=
-
1
)
{
stream
.
write
(
buffer
,
0
,
ch
);
}
is
.
close
();
stream
.
flush
();
stream
.
close
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
return
true
;
}
/**
* 根据url下载文件,保存到filepath中
*
* @param url
* @param filepath
* @return
*/
public
boolean
downloadFile
(
String
url
,
String
filepath
,
Map
<
String
,
String
>
param
,
Map
<
String
,
String
>
headers
)
{
try
{
CloseableHttpClient
httpClient
=
getHttpClientSSL
();
HttpGet
httpget
=
new
HttpGet
(
url
);
HttpResponse
response
=
httpClient
.
execute
(
httpget
);
HttpEntity
entity
=
response
.
getEntity
();
InputStream
is
=
entity
.
getContent
();
//String str=response.getHeaders("Content-disposition");
File
file
=
new
File
(
filepath
);
file
.
getParentFile
().
mkdirs
();
FileOutputStream
fileout
=
new
FileOutputStream
(
file
);
byte
[]
buffer
=
new
byte
[
10
*
1024
];
int
ch
=
0
;
while
((
ch
=
is
.
read
(
buffer
))
!=
-
1
)
{
fileout
.
write
(
buffer
,
0
,
ch
);
}
is
.
close
();
fileout
.
flush
();
fileout
.
close
();
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
return
false
;
}
return
true
;
}
/**
* 链接地址后追加参数
*/
public
static
String
addUrlParam
(
String
url
,
String
...
param
)
{
if
(
param
!=
null
)
{
for
(
String
str
:
param
)
if
(
StringUtils
.
isNotBlank
(
str
))
{
if
(
url
.
indexOf
(
"?"
)
>=
0
)
{
url
+=
"&"
+
str
;
}
else
{
url
+=
"?"
+
str
;
}
}
}
return
url
;
}
}
src/test/java/com/dianmi/util/IdentityVerifyUtil.java
0 → 100644
View file @
8218da17
package
com
.
dianmi
.
util
;
import
java.util.HashMap
;
import
java.util.Map
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
weaver.rsa.security.RSA
;
/**
* description :
* author :JHY
* date : 2020/6/3
* version : 1.0
*/
public
class
IdentityVerifyUtil
{
public
static
final
String
APPID
=
"EEAA5436-7577-4BE0-8C6C-89E9D88805EA"
;
public
static
final
String
HOST
=
"http://192.168.1.228:8090"
;
//系统公钥信息
private
String
SPK
=
null
;
//秘钥信息
private
String
SECRET
=
null
;
private
static
IdentityVerifyUtil
instance
;
public
static
synchronized
IdentityVerifyUtil
getInstance
()
{
if
(
instance
==
null
)
{
instance
=
new
IdentityVerifyUtil
();
instance
.
regist
();
}
return
instance
;
}
private
IdentityVerifyUtil
()
{
}
private
void
regist
()
{
//httpclient的使用请自己封装,可参考ECOLOGY中HttpManager类
HttpManager
http
=
new
HttpManager
();
//请求头信息封装集合
Map
<
String
,
String
>
heads
=
new
HashMap
<
String
,
String
>();
//获取当前异构系统RSA加密的公钥
String
cpk
=
RSA
.
getRSA_PUB
();
//当前异构系统用于向ECOLOGY注册时使用的账号密码通过DES加密后密文进行传输
//kb1906及以上版本 已废弃账号密码校验
//封装参数到请求头
heads
.
put
(
"appid"
,
APPID
);
heads
.
put
(
"cpk"
,
cpk
);
//调用ECOLOGY系统接口进行注册
try
{
String
data
=
http
.
postDataSSL
(
HOST
+
"/api/ec/dev/auth/regist"
,
new
HashMap
<>(),
heads
);
//返回的数据格式为json,具体格式参数格式请参考文末API介绍。
//注意此时如果注册成功会返回秘钥信息,请根据业务需要进行保存。
if
(
data
!=
null
)
{
JSONObject
result
=
JSON
.
parseObject
(
data
);
if
(
"true"
.
equals
(
result
.
getString
(
"status"
)))
{
this
.
SPK
=
result
.
getString
(
"spk"
);
this
.
SECRET
=
result
.
getString
(
"secrit"
);
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
public
String
getToken
()
{
//httpclient的使用请自己封装,可参考ECOLOGY中HttpManager类
HttpManager
http
=
new
HttpManager
();
//请求头信息封装集合
Map
<
String
,
String
>
heads
=
new
HashMap
<
String
,
String
>();
RSA
rsa
=
new
RSA
();
//对秘钥进行加密传输,防止篡改数据
String
secret
=
rsa
.
encrypt
(
null
,
SECRET
,
null
,
"utf-8"
,
SPK
,
false
);
//封装参数到请求头
heads
.
put
(
"appid"
,
APPID
);
heads
.
put
(
"secret"
,
secret
);
//调用ECOLOGY系统接口进行申请
try
{
String
data
=
http
.
postDataSSL
(
HOST
+
"/api/ec/dev/auth/applytoken"
,
new
HashMap
<>(),
heads
);
if
(
data
!=
null
)
{
JSONObject
res
=
JSON
.
parseObject
(
data
);
if
(
"true"
.
equals
(
res
.
getString
(
"status"
)))
{
return
res
.
getString
(
"token"
);
}
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
return
null
;
}
/**
* 获取请求头信息
* @param token
* @param userid
* @param spk
* @return
*/
public
static
Map
<
String
,
String
>
getHttpHeads
(
String
token
,
String
userid
,
String
spk
){
Map
<
String
,
String
>
heads
=
new
HashMap
<>();
heads
.
put
(
"token"
,
token
);
heads
.
put
(
"appid"
,
IdentityVerifyUtil
.
APPID
);
RSA
rsa
=
new
RSA
();
String
secretUserid
=
rsa
.
encrypt
(
null
,
userid
,
null
,
"utf-8"
,
spk
,
false
);
heads
.
put
(
"userid"
,
secretUserid
);
return
heads
;
}
public
String
getSPK
()
{
return
SPK
;
}
public
String
getSECRET
()
{
return
SECRET
;
}
}
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