|
@@ -167,78 +167,97 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
* @return 车型列表
|
|
* @return 车型列表
|
|
|
*/
|
|
*/
|
|
|
public BoHaiCrawlerCheckTokenResponse checkToken(BoHaiCrawlerCheckTokenRequest boHaiCrawlerCheckTokenRequest, HttpHeaders headers) {
|
|
public BoHaiCrawlerCheckTokenResponse checkToken(BoHaiCrawlerCheckTokenRequest boHaiCrawlerCheckTokenRequest, HttpHeaders headers) {
|
|
|
- return request(RequestUrl.CHECK_TOKEN, boHaiCrawlerCheckTokenRequest, BoHaiCrawlerCheckTokenResponse.class, headers);
|
|
|
|
|
|
|
+ return executeRequest(RequestType.UNENCRYPTED, RequestUrl.CHECK_TOKEN, boHaiCrawlerCheckTokenRequest, BoHaiCrawlerCheckTokenResponse.class, headers);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 请求(请求参数加密)
|
|
|
|
|
|
|
+ * 统一请求方法
|
|
|
*
|
|
*
|
|
|
- * @param crawlerRequestUrlStandard
|
|
|
|
|
- * @param request
|
|
|
|
|
- * @param responseClass
|
|
|
|
|
- * @param headers
|
|
|
|
|
- * @return BoHaiResponse
|
|
|
|
|
|
|
+ * @param requestType 请求类型
|
|
|
|
|
+ * @param urlOrStandard URL或请求标准
|
|
|
|
|
+ * @param request 请求对象
|
|
|
|
|
+ * @param responseClass 响应类型
|
|
|
|
|
+ * @param headers 请求头
|
|
|
|
|
+ * @return BoHaiResponse 响应对象
|
|
|
*/
|
|
*/
|
|
|
- public <BoHaiResponse> BoHaiResponse request(CrawlerRequestUrlStandard crawlerRequestUrlStandard, Object request, Class<BoHaiResponse> responseClass, HttpHeaders headers) {
|
|
|
|
|
|
|
+ public <BoHaiResponse> BoHaiResponse executeRequest(RequestType requestType, Object urlOrStandard, Object request, Class<BoHaiResponse> responseClass, HttpHeaders headers) {
|
|
|
try {
|
|
try {
|
|
|
- ResponseEntity<String> responseEntity = requestComponent.objectPost2(crawlerRequestUrlStandard.getRequestUrl(boHaiCrawlerProperties.getBaseUrl2()), request, String.class, headers);
|
|
|
|
|
-
|
|
|
|
|
- String responseString = responseEntity.getBody();
|
|
|
|
|
- log.info("请求返回参数:{}", responseString);
|
|
|
|
|
- AssertionUtils.isEmpty(responseString, "请求异常请重试");
|
|
|
|
|
- // 参数解密
|
|
|
|
|
- String decrypt = DESUtil.des_decrypt(responseString);
|
|
|
|
|
- log.info("请求返回参数解密:{}", decrypt);
|
|
|
|
|
- return JSON.parseObject(decrypt, responseClass);
|
|
|
|
|
|
|
+ switch (requestType) {
|
|
|
|
|
+ case ENCRYPTED:
|
|
|
|
|
+ // 请求参数加密
|
|
|
|
|
+ CrawlerRequestUrlStandard standard = (CrawlerRequestUrlStandard) urlOrStandard;
|
|
|
|
|
+ ResponseEntity<String> encryptedResponse = requestComponent.objectPost2(
|
|
|
|
|
+ standard.getRequestUrl(boHaiCrawlerProperties.getBaseUrl2()),
|
|
|
|
|
+ request,
|
|
|
|
|
+ String.class,
|
|
|
|
|
+ headers
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ String responseString = encryptedResponse.getBody();
|
|
|
|
|
+ log.info("请求返回参数:{}", responseString);
|
|
|
|
|
+ AssertionUtils.isEmpty(responseString, "请求异常请重试");
|
|
|
|
|
+ // 参数解密
|
|
|
|
|
+ String decrypt = DESUtil.des_decrypt(responseString);
|
|
|
|
|
+ log.info("请求返回参数解密:{}", decrypt);
|
|
|
|
|
+ return JSON.parseObject(decrypt, responseClass);
|
|
|
|
|
+
|
|
|
|
|
+ case UNENCRYPTED:
|
|
|
|
|
+ // 请求参数不加密
|
|
|
|
|
+ CrawlerRequestUrlStandard unencryptedStandard = (CrawlerRequestUrlStandard) urlOrStandard;
|
|
|
|
|
+ ResponseEntity<BoHaiResponse> unencryptedResponse = requestComponent.objectPost(
|
|
|
|
|
+ unencryptedStandard.getRequestUrl(boHaiCrawlerProperties.getBaseUrl2()),
|
|
|
|
|
+ request,
|
|
|
|
|
+ responseClass,
|
|
|
|
|
+ headers
|
|
|
|
|
+ );
|
|
|
|
|
+
|
|
|
|
|
+ AssertionUtils.isEmpty(unencryptedResponse, "请求异常请重试");
|
|
|
|
|
+ BoHaiResponse body = unencryptedResponse.getBody();
|
|
|
|
|
+ return JSON.parseObject(JSON.toJSONString(body), responseClass);
|
|
|
|
|
+
|
|
|
|
|
+ case FILE_UPLOAD:
|
|
|
|
|
+ // 文件上传
|
|
|
|
|
+ String url = (String) urlOrStandard;
|
|
|
|
|
+ ResponseEntity<String> uploadResponse = requestComponent.objectPostForUpload(
|
|
|
|
|
+ url,
|
|
|
|
|
+ request,
|
|
|
|
|
+ String.class,
|
|
|
|
|
+ headers
|
|
|
|
|
+ );
|
|
|
|
|
+ String result = uploadResponse.getBody();
|
|
|
|
|
+
|
|
|
|
|
+ AssertionUtils.isEmpty(result, "请求异常请重试");
|
|
|
|
|
+ // 参数解密
|
|
|
|
|
+ String uploadDecrypt = DESUtil.des_decrypt(result);
|
|
|
|
|
+ log.info("解密的值:{}", uploadDecrypt);
|
|
|
|
|
+ return (BoHaiResponse) parseImageUploadResponse(uploadDecrypt);
|
|
|
|
|
+ default:
|
|
|
|
|
+ throw new IllegalArgumentException("不支持的请求类型: " + requestType);
|
|
|
|
|
+ }
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
|
throw new RuntimeException(e);
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
- * 请求(请求参数没有加密)
|
|
|
|
|
- *
|
|
|
|
|
- * @param crawlerRequestUrlStandard
|
|
|
|
|
- * @param request
|
|
|
|
|
- * @param responseClass
|
|
|
|
|
- * @param headers
|
|
|
|
|
- * @return BoHaiResponse
|
|
|
|
|
|
|
+ * 请求类型枚举
|
|
|
*/
|
|
*/
|
|
|
- public <BoHaiResponse> BoHaiResponse request1(CrawlerRequestUrlStandard crawlerRequestUrlStandard, Object request, Class<BoHaiResponse> responseClass, HttpHeaders headers) {
|
|
|
|
|
-
|
|
|
|
|
- ResponseEntity<BoHaiResponse> responseEntity = requestComponent.objectPost(crawlerRequestUrlStandard.getRequestUrl(boHaiCrawlerProperties.getBaseUrl2()), request, responseClass, headers);
|
|
|
|
|
-
|
|
|
|
|
- AssertionUtils.isEmpty(responseEntity, "请求异常请重试");
|
|
|
|
|
- BoHaiResponse body = responseEntity.getBody();
|
|
|
|
|
- return JSON.parseObject(JSON.toJSONString(body), responseClass);
|
|
|
|
|
|
|
+ public enum RequestType {
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 请求参数加密
|
|
|
|
|
+ */
|
|
|
|
|
+ ENCRYPTED,
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 请求参数不加密
|
|
|
|
|
+ */
|
|
|
|
|
+ UNENCRYPTED,
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 文件上传
|
|
|
|
|
+ */
|
|
|
|
|
+ FILE_UPLOAD
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 请求(请求参数没有加密)
|
|
|
|
|
- *
|
|
|
|
|
- * @param url
|
|
|
|
|
- * @param request
|
|
|
|
|
- * @param responseClass
|
|
|
|
|
- * @param headers
|
|
|
|
|
- * @return BoHaiResponse
|
|
|
|
|
- */
|
|
|
|
|
- public <BoHaiResponse> BoHaiResponse requestForUpload(String url, Object request, Class<BoHaiResponse> responseClass, HttpHeaders headers) {
|
|
|
|
|
- try {
|
|
|
|
|
- ResponseEntity<String> responseEntity = requestComponent.objectPostForUpload(url, request, String.class, headers);
|
|
|
|
|
- String result = responseEntity.getBody();
|
|
|
|
|
-
|
|
|
|
|
- AssertionUtils.isEmpty(result, "请求异常请重试");
|
|
|
|
|
- //参数解密
|
|
|
|
|
- String decrypt = DESUtil.des_decrypt(result);
|
|
|
|
|
- log.info("解密的值:{}", decrypt);
|
|
|
|
|
- return (BoHaiResponse) parseImageUploadResponse(decrypt);
|
|
|
|
|
- } catch (Exception e) {
|
|
|
|
|
- e.printStackTrace();
|
|
|
|
|
- throw new RuntimeException(e);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 解析JSON字符串为BoHaiCrawlerImageUploadResponse
|
|
* 解析JSON字符串为BoHaiCrawlerImageUploadResponse
|
|
@@ -263,7 +282,7 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
response.setData(dataMap);
|
|
response.setData(dataMap);
|
|
|
- return response;
|
|
|
|
|
|
|
+ return response;
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
log.error("解析图片上传响应失败: {}", e.getMessage(), e);
|
|
log.error("解析图片上传响应失败: {}", e.getMessage(), e);
|
|
|
throw new RuntimeException("JSON解析失败", e);
|
|
throw new RuntimeException("JSON解析失败", e);
|
|
@@ -332,7 +351,7 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
* @return BoHaiCrawlerCarResponse 车型列表
|
|
* @return BoHaiCrawlerCarResponse 车型列表
|
|
|
*/
|
|
*/
|
|
|
public BoHaiCrawlerCarResponse car(BoHaiCrawlerCarRequest boHaiCrawlerCarRequest, HttpHeaders headers) {
|
|
public BoHaiCrawlerCarResponse car(BoHaiCrawlerCarRequest boHaiCrawlerCarRequest, HttpHeaders headers) {
|
|
|
- return request1(RequestUrl.CAR, boHaiCrawlerCarRequest, BoHaiCrawlerCarResponse.class, headers);
|
|
|
|
|
|
|
+ return executeRequest(RequestType.ENCRYPTED, RequestUrl.CAR, boHaiCrawlerCarRequest, BoHaiCrawlerCarResponse.class, headers);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -343,7 +362,7 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
* @return BoHaiCrawlerVehicleConfirmationResponse
|
|
* @return BoHaiCrawlerVehicleConfirmationResponse
|
|
|
*/
|
|
*/
|
|
|
public BoHaiCrawlerVehicleConfirmationResponse2 vehicleConfirmation(BoHaiCrawlerVehicleConfirmationReqeust1 boHaiCrawlerVehicleConfirmationReqeust1, HttpHeaders headers) {
|
|
public BoHaiCrawlerVehicleConfirmationResponse2 vehicleConfirmation(BoHaiCrawlerVehicleConfirmationReqeust1 boHaiCrawlerVehicleConfirmationReqeust1, HttpHeaders headers) {
|
|
|
- return request(RequestUrl.VEHICLECONFIRMATION, boHaiCrawlerVehicleConfirmationReqeust1, BoHaiCrawlerVehicleConfirmationResponse2.class, headers);
|
|
|
|
|
|
|
+ return executeRequest(RequestType.ENCRYPTED, RequestUrl.VEHICLECONFIRMATION, boHaiCrawlerVehicleConfirmationReqeust1, BoHaiCrawlerVehicleConfirmationResponse2.class, headers);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -354,7 +373,7 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
* @return BoHaiCrawlerQuotationResponse
|
|
* @return BoHaiCrawlerQuotationResponse
|
|
|
*/
|
|
*/
|
|
|
public BoHaiCrawlerQuotationResponse quotation(BoHaiCrawlerQuotationRequest2 boHaiCrawlerQuotationRequest2, HttpHeaders headers) {
|
|
public BoHaiCrawlerQuotationResponse quotation(BoHaiCrawlerQuotationRequest2 boHaiCrawlerQuotationRequest2, HttpHeaders headers) {
|
|
|
- return request(RequestUrl.PRICE, boHaiCrawlerQuotationRequest2, BoHaiCrawlerQuotationResponse.class, headers);
|
|
|
|
|
|
|
+ return executeRequest(RequestType.ENCRYPTED, RequestUrl.PRICE, boHaiCrawlerQuotationRequest2, BoHaiCrawlerQuotationResponse.class, headers);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -365,7 +384,7 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
* @return BoHaiCrawlerUnderwritingResponse
|
|
* @return BoHaiCrawlerUnderwritingResponse
|
|
|
*/
|
|
*/
|
|
|
public BoHaiCrawlerUnderwritingResponse underwriting(BoHaiCrawlerUnderwritingRequest2 boHaiCrawlerUnderwritingRequest2, HttpHeaders headers) throws Exception {
|
|
public BoHaiCrawlerUnderwritingResponse underwriting(BoHaiCrawlerUnderwritingRequest2 boHaiCrawlerUnderwritingRequest2, HttpHeaders headers) throws Exception {
|
|
|
- return request(RequestUrl.UNDERWRITING, boHaiCrawlerUnderwritingRequest2, BoHaiCrawlerUnderwritingResponse.class, headers);
|
|
|
|
|
|
|
+ return executeRequest(RequestType.ENCRYPTED, RequestUrl.UNDERWRITING, boHaiCrawlerUnderwritingRequest2, BoHaiCrawlerUnderwritingResponse.class, headers);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -412,12 +431,12 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
boHaiCrawlerImageUploadSubmitEncryptionRequest.setEncryptionData(encrypt);
|
|
boHaiCrawlerImageUploadSubmitEncryptionRequest.setEncryptionData(encrypt);
|
|
|
boHaiCrawlerImageUploadSubmitEncryptionRequest.setMd5(md5Value);
|
|
boHaiCrawlerImageUploadSubmitEncryptionRequest.setMd5(md5Value);
|
|
|
|
|
|
|
|
- BoHaiCrawlerImageUploadSubmitResponse boHaiCrawlerImageUploadSubmitResponse = request(RequestUrl.UPLOAD_SUBMIT, boHaiCrawlerImageUploadSubmitEncryptionRequest, BoHaiCrawlerImageUploadSubmitResponse.class, headers);
|
|
|
|
|
|
|
+ BoHaiCrawlerImageUploadSubmitResponse boHaiCrawlerImageUploadSubmitResponse = executeRequest(RequestType.ENCRYPTED, RequestUrl.UPLOAD_SUBMIT, boHaiCrawlerImageUploadSubmitEncryptionRequest, BoHaiCrawlerImageUploadSubmitResponse.class, headers);
|
|
|
String returnCode = boHaiCrawlerImageUploadSubmitResponse.getHead().getReturnCode();
|
|
String returnCode = boHaiCrawlerImageUploadSubmitResponse.getHead().getReturnCode();
|
|
|
if (!"0".equals(returnCode)) {
|
|
if (!"0".equals(returnCode)) {
|
|
|
log.error("上传影像提交失败,返回码:{},返回消息:{}", returnCode, boHaiCrawlerImageUploadSubmitResponse.getHead().getReturnMessage());
|
|
log.error("上传影像提交失败,返回码:{},返回消息:{}", returnCode, boHaiCrawlerImageUploadSubmitResponse.getHead().getReturnMessage());
|
|
|
throw new SystemException("上传影像提交失败,返回码:" + returnCode + ",返回消息:" + boHaiCrawlerImageUploadSubmitResponse.getHead().getReturnMessage());
|
|
throw new SystemException("上传影像提交失败,返回码:" + returnCode + ",返回消息:" + boHaiCrawlerImageUploadSubmitResponse.getHead().getReturnMessage());
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
log.info("上传影像成功");
|
|
log.info("上传影像成功");
|
|
|
}
|
|
}
|
|
|
return boHaiCrawlerImageUploadSubmitResponse;
|
|
return boHaiCrawlerImageUploadSubmitResponse;
|
|
@@ -426,9 +445,9 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
/**
|
|
/**
|
|
|
* 构建图片上传提交请求对象
|
|
* 构建图片上传提交请求对象
|
|
|
*
|
|
*
|
|
|
- * @param boHaiCrawlerImageUploadRequest 请求DTO
|
|
|
|
|
- * @param files 文件数组
|
|
|
|
|
- * @param batchNumber 批次号
|
|
|
|
|
|
|
+ * @param boHaiCrawlerImageUploadRequest 请求DTO
|
|
|
|
|
+ * @param files 文件数组
|
|
|
|
|
+ * @param batchNumber 批次号
|
|
|
* @return BoHaiCrawlerImageUploadSubmitRequest
|
|
* @return BoHaiCrawlerImageUploadSubmitRequest
|
|
|
*/
|
|
*/
|
|
|
private BoHaiCrawlerImageUploadSubmitRequest buildImageUploadSubmitRequest(
|
|
private BoHaiCrawlerImageUploadSubmitRequest buildImageUploadSubmitRequest(
|
|
@@ -533,8 +552,8 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
requestBody.add("file[]", resource);
|
|
requestBody.add("file[]", resource);
|
|
|
- BoHaiCrawlerImageUploadResponse boHaiCrawlerImageUploadResponse = requestForUpload(fullUrl, requestBody, BoHaiCrawlerImageUploadResponse.class, headers);
|
|
|
|
|
- log.info("boHaiCrawlerImageUploadResponse对象的值:{}",JSON.toJSONString(boHaiCrawlerImageUploadResponse));
|
|
|
|
|
|
|
+ BoHaiCrawlerImageUploadResponse boHaiCrawlerImageUploadResponse = executeRequest(RequestType.FILE_UPLOAD, fullUrl, requestBody, BoHaiCrawlerImageUploadResponse.class, headers);
|
|
|
|
|
+ log.info("boHaiCrawlerImageUploadResponse对象的值:{}", JSON.toJSONString(boHaiCrawlerImageUploadResponse));
|
|
|
Map<String, BoHaiCrawlerImageUploadResponse.ImageInfo> data = boHaiCrawlerImageUploadResponse.getData();
|
|
Map<String, BoHaiCrawlerImageUploadResponse.ImageInfo> data = boHaiCrawlerImageUploadResponse.getData();
|
|
|
if (CollectionUtils.isEmpty(data)) {
|
|
if (CollectionUtils.isEmpty(data)) {
|
|
|
log.error("上传影像失败,返回数据为空");
|
|
log.error("上传影像失败,返回数据为空");
|
|
@@ -547,5 +566,14 @@ public class BoHaiCrawlerRequestComponent {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 获取支付链接
|
|
|
|
|
+ *
|
|
|
|
|
+ * @param boHaiCrawlerPaymentCertiNoQueryRequest
|
|
|
|
|
+ * @param headers 请求头
|
|
|
|
|
+ * @return
|
|
|
|
|
+ */
|
|
|
|
|
+ public BoHaiCrawlerQrcodeResponse payment(BoHaiCrawlerPaymentCertiNoQueryRequest boHaiCrawlerPaymentCertiNoQueryRequest, HttpHeaders headers) {
|
|
|
|
|
+ return executeRequest(RequestType.ENCRYPTED, RequestUrl.PAYMENTCERTINOQUERY, boHaiCrawlerPaymentCertiNoQueryRequest, BoHaiCrawlerQrcodeResponse.class, headers);
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|