请求方法(参考)

```java @GetMapping("/sendMessage") public String sendMessage(HttpServletRequest request) throws Exception{ String fileName = "d:\\temp\\z1.png"; String url = "https://test.yxer-park.com/api/ykapi/contract/addContracts"; File fileAttach =new File(fileName); //渠道身份的唯一标识 String appKey="999726"; //业务流水号 唯一标识 String serialNumber="1000001"; //合同编号 String contractNumber="HT00001"; //项目,项目名称唯一 请求需要修改 String project="测试项目1"; //合同名称 String contractName = "合同名称"; //合同甲方名称 String contractPartya = "A企业"; //合同乙方名称 String contractPartyb = "测试企业"; //结算费率1基数 个人税前、税后金额、汇总代开 String settlementBase = "税后金额"; //结算费率 String settlementProportion = "6.25"; String tenantId = "999726"; //渠道身份的唯一密钥 String appSecret = "44c8f331fe174114810f6fca938d4826"; //时间戳 String timestamp = new Long(System.currentTimeMillis()).toString(); String sign_before="appKey="+appKey+"&serialNumber="+serialNumber+"&contractNumber="+contractNumber; sign_before+="&contractPartya="+contractPartya+"&contractPartyb="+contractPartyb+"&settlementBase="+settlementBase; sign_before+="&settlementProportion="+settlementProportion+"&tenantId="+tenantId+"&appSecret="+appSecret+"&timestamp="+timestamp; String sign = CryptUtil.encrypt(sign_before, appSecret); Map<String, String> paramsMap = new HashMap<String, String>(); paramsMap.put("appKey",appKey); paramsMap.put("serialNumber",serialNumber); paramsMap.put("contractNumber",contractNumber); paramsMap.put("project",project); paramsMap.put("contractName",contractName); paramsMap.put("contractPartya",contractPartya); paramsMap.put("contractPartyb",contractPartyb); paramsMap.put("settlementBase",settlementBase); paramsMap.put("settlementProportion",settlementProportion); paramsMap.put("tenantId",tenantId); paramsMap.put("sign",sign); return sendHttpPostInfo(url, paramsMap, fileAttach); } public String sendHttpPostInfo(String httpUrl, Map<String, String> maps, File fileAttach) { // 创建httpPost HttpPost httpPost = new HttpPost(httpUrl); MultipartEntityBuilder meBuilder = MultipartEntityBuilder.create(); meBuilder.setCharset(Charset.forName("utf-8")); meBuilder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE); for (String key : maps.keySet()) { meBuilder.addPart(key, new StringBody(maps.get(key), ContentType.create(ContentType.TEXT_PLAIN.getMimeType(),"utf-8"))); } FileBody fileBody = new FileBody(fileAttach); meBuilder.addPart("contractModelAttach", fileBody); HttpEntity reqEntity = meBuilder.build(); httpPost.setEntity(reqEntity); return sendPost(httpPost); } /** * 发送Post请求 * @param httpPost * @return */ private String sendPost(HttpPost httpPost) { RequestConfig requestConfig = RequestConfig.custom() .setSocketTimeout(15000) .setConnectTimeout(15000) .setConnectionRequestTimeout(15000) .build(); CloseableHttpClient httpClient = null; CloseableHttpResponse response = null; HttpEntity entity = null; String responseContent = null; try { // 创建默认httpClient实例. httpClient = HttpClients.createDefault(); httpPost.setConfig(requestConfig); // 执行请求 response = httpClient.execute(httpPost); entity = response.getEntity(); responseContent = EntityUtils.toString(entity, "UTF-8"); } catch (Exception e) { e.printStackTrace(); } finally { try { // 关闭连接,释放资源 if (response != null) { response.close(); } if (httpClient != null) { httpClient.close(); } } catch (IOException e) { e.printStackTrace(); } } return responseContent; } ```