|
@@ -83,7 +83,7 @@ public class HengBangCrawlerRequestComponent {
|
|
|
* @param loginsNumber 登录次数
|
|
* @param loginsNumber 登录次数
|
|
|
* @return token
|
|
* @return token
|
|
|
*/
|
|
*/
|
|
|
- public String authenticate(String username, String password, int loginsNumber) {
|
|
|
|
|
|
|
+ public String authenticate(String username, String password, int loginsNumber) {
|
|
|
// 登录验证码获取
|
|
// 登录验证码获取
|
|
|
HbCrawlerCaptchaResponse captchaResponse = captcha(RequestConstant.REQUEST_NUMBER);
|
|
HbCrawlerCaptchaResponse captchaResponse = captcha(RequestConstant.REQUEST_NUMBER);
|
|
|
// 登录存入缓存当中
|
|
// 登录存入缓存当中
|
|
@@ -146,26 +146,27 @@ public class HengBangCrawlerRequestComponent {
|
|
|
param.set("sysCategory", "2");
|
|
param.set("sysCategory", "2");
|
|
|
param.set("resourceType", "HBXSH");
|
|
param.set("resourceType", "HBXSH");
|
|
|
HttpHeaders headers = new HttpHeaders();
|
|
HttpHeaders headers = new HttpHeaders();
|
|
|
- headers.set(HttpHeaders.ACCEPT,"*/*");
|
|
|
|
|
- headers.set(HttpHeaders.CONTENT_TYPE,"application/x-www-form-urlencode;charset=utf-8");
|
|
|
|
|
- headers.set(HttpHeaders.USER_AGENT,"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36");
|
|
|
|
|
- headers.set(HttpHeaders.AUTHORIZATION,getAuthorization(username));
|
|
|
|
|
- HbCrawlerQueryUserInfoResponse response = requestComponent.get(RequestUrl.QUERY_USER_INFO.getRequestUrl(hbCrawlerProperties.getBaseUrl()) + "/" + username,param,RequestUrl.QUERY_USER_INFO.getRequestDescription(),HbCrawlerQueryUserInfoResponse.class,headers);
|
|
|
|
|
|
|
+ headers.set(HttpHeaders.ACCEPT, "*/*");
|
|
|
|
|
+ headers.set(HttpHeaders.CONTENT_TYPE, "application/x-www-form-urlencode;charset=utf-8");
|
|
|
|
|
+ headers.set(HttpHeaders.USER_AGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/135.0.0.0 Safari/537.36");
|
|
|
|
|
+ headers.set(HttpHeaders.AUTHORIZATION, getAuthorization(username));
|
|
|
|
|
+ HbCrawlerQueryUserInfoResponse response = requestComponent.get(RequestUrl.QUERY_USER_INFO.getRequestUrl(hbCrawlerProperties.getBaseUrl()) + "/" + username, param, RequestUrl.QUERY_USER_INFO.getRequestDescription(), HbCrawlerQueryUserInfoResponse.class, headers);
|
|
|
return response;
|
|
return response;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取行业车型信息
|
|
* 获取行业车型信息
|
|
|
|
|
+ *
|
|
|
* @param queryCarInfoRequest
|
|
* @param queryCarInfoRequest
|
|
|
* @param headers
|
|
* @param headers
|
|
|
*/
|
|
*/
|
|
|
public HbCrawlerQueryCarRequest.CbitDataDTO queryCarInfo(HbCrawlerQueryCarInfoRequest queryCarInfoRequest, HttpHeaders headers) {
|
|
public HbCrawlerQueryCarRequest.CbitDataDTO queryCarInfo(HbCrawlerQueryCarInfoRequest queryCarInfoRequest, HttpHeaders headers) {
|
|
|
MultiValueMap<String, String> param = RequestObjectConversion.convertMultiValueStringMap(queryCarInfoRequest);
|
|
MultiValueMap<String, String> param = RequestObjectConversion.convertMultiValueStringMap(queryCarInfoRequest);
|
|
|
- String response = requestComponent.get(RequestUrl.QUERY_CAR_INFO.getRequestUrl(hbCrawlerProperties.getBaseUrl()) ,param,RequestUrl.QUERY_CAR_INFO.getRequestDescription(),String.class,headers);
|
|
|
|
|
|
|
+ String response = requestComponent.get(RequestUrl.QUERY_CAR_INFO.getRequestUrl(hbCrawlerProperties.getBaseUrl()), param, RequestUrl.QUERY_CAR_INFO.getRequestDescription(), String.class, headers);
|
|
|
JSONObject res = JSONObject.parseObject(response);
|
|
JSONObject res = JSONObject.parseObject(response);
|
|
|
String ciphertextB64 = res.getString("hb_enc_d");
|
|
String ciphertextB64 = res.getString("hb_enc_d");
|
|
|
String plaintext = null;
|
|
String plaintext = null;
|
|
|
- try{
|
|
|
|
|
|
|
+ try {
|
|
|
plaintext = HengBangAESUtil.decryptStr(ciphertextB64);
|
|
plaintext = HengBangAESUtil.decryptStr(ciphertextB64);
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
throw new SystemException("解密失败");
|
|
throw new SystemException("解密失败");
|
|
@@ -193,8 +194,9 @@ public class HengBangCrawlerRequestComponent {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* AES-256-CBC 解密
|
|
* AES-256-CBC 解密
|
|
|
|
|
+ *
|
|
|
* @param ciphertextB64 Base64 编码的密文(前16字节是IV)
|
|
* @param ciphertextB64 Base64 编码的密文(前16字节是IV)
|
|
|
- * @param key 32字节密钥(256位)
|
|
|
|
|
|
|
+ * @param key 32字节密钥(256位)
|
|
|
* @return 解密后的明文
|
|
* @return 解密后的明文
|
|
|
* @throws Exception
|
|
* @throws Exception
|
|
|
*/
|
|
*/
|
|
@@ -231,7 +233,7 @@ public class HengBangCrawlerRequestComponent {
|
|
|
* @return
|
|
* @return
|
|
|
*/
|
|
*/
|
|
|
public List<HbCrawlerQueryCarResponse.ContentDTO> queryCar(HbCrawlerQueryCarRequest queryCarRequest, HttpHeaders headers) {
|
|
public List<HbCrawlerQueryCarResponse.ContentDTO> queryCar(HbCrawlerQueryCarRequest queryCarRequest, HttpHeaders headers) {
|
|
|
- HbCrawlerQueryCarResponse queryCarResponse = requestComponent.toStringPost(RequestUrl.QUERY_CAR.getRequestUrl(hbCrawlerProperties.getBaseUrl()), queryCarRequest,RequestUrl.QUERY_CAR.getRequestDescription(), HbCrawlerQueryCarResponse.class, headers);
|
|
|
|
|
|
|
+ HbCrawlerQueryCarResponse queryCarResponse = requestComponent.toStringPost(RequestUrl.QUERY_CAR.getRequestUrl(hbCrawlerProperties.getBaseUrl()), queryCarRequest, RequestUrl.QUERY_CAR.getRequestDescription(), HbCrawlerQueryCarResponse.class, headers);
|
|
|
return queryCarResponse.getContent();
|
|
return queryCarResponse.getContent();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -293,18 +295,19 @@ public class HengBangCrawlerRequestComponent {
|
|
|
mapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
|
|
mapper.setSerializationInclusion(JsonInclude.Include.ALWAYS);
|
|
|
String json = mapper.writeValueAsString(calculationRequest);
|
|
String json = mapper.writeValueAsString(calculationRequest);
|
|
|
req.setHbEncD(HengBangAESUtil.encryptStr(json));
|
|
req.setHbEncD(HengBangAESUtil.encryptStr(json));
|
|
|
- HbCrawlerSaleInfoResponse response = requestComponent.toStringPost(RequestUrl.CALCULATION.getRequestUrl(hbCrawlerProperties.getBaseUrl()), req, RequestUrl.CALCULATION.getRequestDescription(),HbCrawlerSaleInfoResponse.class, headers);
|
|
|
|
|
|
|
+ HbCrawlerSaleInfoResponse response = requestComponent.toStringPost(RequestUrl.CALCULATION.getRequestUrl(hbCrawlerProperties.getBaseUrl()), req, RequestUrl.CALCULATION.getRequestDescription(), HbCrawlerSaleInfoResponse.class, headers);
|
|
|
System.out.println(HengBangAESUtil.decryptStr(response.getHbEncD()));
|
|
System.out.println(HengBangAESUtil.decryptStr(response.getHbEncD()));
|
|
|
String resJson = HengBangAESUtil.decryptStr(response.getHbEncD());
|
|
String resJson = HengBangAESUtil.decryptStr(response.getHbEncD());
|
|
|
return resJson;
|
|
return resJson;
|
|
|
} catch (WebClientResponseException e) {
|
|
} catch (WebClientResponseException e) {
|
|
|
- if(e.getStatusCode().equals(HttpStatusCode.valueOf(500))){
|
|
|
|
|
- return JSONObject.parseObject(e.getMessage()).getString("detail");
|
|
|
|
|
- }else{
|
|
|
|
|
|
|
+ log.error("恒邦calculation接口调用失败[{}]: {}", e.getStatusCode(), e.getResponseBodyAsString());
|
|
|
|
|
+ final JSONObject jsonObject = JSONObject.parseObject(e.getResponseBodyAsString());
|
|
|
|
|
+ if (jsonObject.getInteger("status") == 500) {
|
|
|
|
|
+ return jsonObject.getString("detail");
|
|
|
|
|
+ } else {
|
|
|
throw new SystemException(e.getMessage());
|
|
throw new SystemException(e.getMessage());
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
- catch (Exception e) {
|
|
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
throw new SystemException(e.getMessage());
|
|
throw new SystemException(e.getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -320,7 +323,7 @@ public class HengBangCrawlerRequestComponent {
|
|
|
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
|
|
MultiValueMap<String, String> params = new LinkedMultiValueMap<>();
|
|
|
String encryptPlyappno;
|
|
String encryptPlyappno;
|
|
|
try {
|
|
try {
|
|
|
- encryptPlyappno = HengBangAESUtil.encryptStr(plyappno);
|
|
|
|
|
|
|
+ encryptPlyappno = HengBangAESUtil.encryptStr(plyappno);
|
|
|
System.out.println("encryptPlyappno1 ===========" + encryptPlyappno);
|
|
System.out.println("encryptPlyappno1 ===========" + encryptPlyappno);
|
|
|
encryptPlyappno = new StringBuilder(RequestConstant.ENCRYPTPRE).append(encryptPlyappno)
|
|
encryptPlyappno = new StringBuilder(RequestConstant.ENCRYPTPRE).append(encryptPlyappno)
|
|
|
.toString();
|
|
.toString();
|
|
@@ -382,12 +385,13 @@ public class HengBangCrawlerRequestComponent {
|
|
|
public String coreProposal(String plyappno, HttpHeaders headers, List<Map<String, String>> paramList) {
|
|
public String coreProposal(String plyappno, HttpHeaders headers, List<Map<String, String>> paramList) {
|
|
|
try {
|
|
try {
|
|
|
String requestBody = JSON.toJSONString(paramList);
|
|
String requestBody = JSON.toJSONString(paramList);
|
|
|
- ResponseEntity<String> responseEntity = requestComponent.objectPost(RequestUrl.SUBMIT.getRequestUrl(hbCrawlerProperties.getBaseUrl()) + "/" +plyappno, requestBody, String.class, headers);
|
|
|
|
|
|
|
+ ResponseEntity<String> responseEntity = requestComponent.objectPost(RequestUrl.SUBMIT.getRequestUrl(hbCrawlerProperties.getBaseUrl()) + "/" + plyappno, requestBody, String.class, headers);
|
|
|
return JSONObject.parseObject(responseEntity.getBody()).getString("message");
|
|
return JSONObject.parseObject(responseEntity.getBody()).getString("message");
|
|
|
} catch (WebClientResponseException e) {
|
|
} catch (WebClientResponseException e) {
|
|
|
- if(e.getStatusCode().equals(HttpStatusCode.valueOf(500))){
|
|
|
|
|
|
|
+ log.error("恒邦calculation接口调用失败[{}]: {}", e.getStatusCode(), e.getResponseBodyAsString());
|
|
|
|
|
+ if (e.getStatusCode().equals(HttpStatusCode.valueOf(500))) {
|
|
|
return JSONObject.parseObject(e.getMessage()).getString("detail");
|
|
return JSONObject.parseObject(e.getMessage()).getString("detail");
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
throw new SystemException(e.getMessage());
|
|
throw new SystemException(e.getMessage());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -395,6 +399,7 @@ public class HengBangCrawlerRequestComponent {
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 获取核保信息
|
|
* 获取核保信息
|
|
|
|
|
+ *
|
|
|
* @param plyappno
|
|
* @param plyappno
|
|
|
* @param headers
|
|
* @param headers
|
|
|
* @return
|
|
* @return
|
|
@@ -481,7 +486,8 @@ public class HengBangCrawlerRequestComponent {
|
|
|
List<Object> response = requestComponent.get(RequestUrl.LAST_ACCIDENT.getRequestUrl(hbCrawlerProperties.getBaseUrl()).concat(plyappno),
|
|
List<Object> response = requestComponent.get(RequestUrl.LAST_ACCIDENT.getRequestUrl(hbCrawlerProperties.getBaseUrl()).concat(plyappno),
|
|
|
map,
|
|
map,
|
|
|
"",
|
|
"",
|
|
|
- new ParameterizedTypeReference<>(){},
|
|
|
|
|
|
|
+ new ParameterizedTypeReference<>() {
|
|
|
|
|
+ },
|
|
|
headers);
|
|
headers);
|
|
|
return CollectionUtils.emptyIfNull(response)
|
|
return CollectionUtils.emptyIfNull(response)
|
|
|
.stream()
|
|
.stream()
|