陈昶聿
3 天以前 3998703641edf236113f77f15c79561fd7f75c59
ruoyi-common/src/main/java/com/ruoyi/common/utils/HttpUtil.java
@@ -157,6 +157,66 @@
     * @param respBodyClass 响应体类型
     * @return 返回的响应结果
     */
    public static String postXmlRequest(String url, String request) throws HttpRequestException {
        return postXmlRequest(url, request, EMPTY_HEADERS);
    }
    public static String postXmlRequest(String url, String request, Map<String, String> headers) throws HttpRequestException {
        Assert.hasLength(url, "璇锋眰url涓嶈兘涓虹┖瀛楃涓层€?");
        Assert.notNull(request, "XML request must not be null");
        EntityEnclosingMethod httpMethod = new PostMethod(url);
        httpMethod.addRequestHeader(CONTENT_TYPE, TEXT_XML_UTF8);
        setHeaderRequestId(httpMethod);
        if (headers != null && headers != EMPTY_HEADERS) {
            setReqHeaders(headers, httpMethod);
        }
        try {
            RequestEntity entity = new StringRequestEntity(request, TEXT_XML, StandardCharsets.UTF_8.name());
            httpMethod.setRequestEntity(entity);
            int resultCode = httpClient.executeMethod(httpMethod);
            String contentType = httpMethod.getResponseHeader(CONTENT_TYPE) == null
                    ? null : httpMethod.getResponseHeader(CONTENT_TYPE).getValue();
            String charset = StandardCharsets.UTF_8.name();
            if (contentType != null && contentType.contains("charset=")) {
                String[] parts = contentType.split("charset=");
                if (parts.length > 1) {
                    charset = parts[1].split(";")[0].trim();
                }
            }
            InputStream inputStream = httpMethod.getResponseBodyAsStream();
            if (inputStream == null) {
                throw new HttpRequestException(RESPONSE_NULL_ERROR_CODE, "鍝嶅簲涓簄ull");
            }
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, charset));
            StringBuilder stringBuilder = new StringBuilder();
            String str;
            while ((str = reader.readLine()) != null) {
                stringBuilder.append(str);
            }
            reader.close();
            String respXml = stringBuilder.toString();
            if (resultCode == OK) {
                return respXml;
            } else {
                throw new HttpRequestException(resultCode, respXml);
            }
        } catch (UnsupportedEncodingException e) {
            throw new HttpRequestException(ENCODING_ERROR_CODE, e);
        } catch (HttpException e) {
            throw new HttpRequestException(HTTP_ERROR_CODE, e);
        } catch (IOException e) {
            throw new HttpRequestException(IO_ERROR_CODE, e);
        } finally {
            if (httpMethod != null) {
                httpMethod.releaseConnection();
            }
        }
    }
    @SuppressWarnings("unchecked")
    public static <RESPBODY> HttpEntity<RESPBODY> postJsonRequestV2(String url, HttpEntity<?> reqEntity, Class<RESPBODY> respBodyClass) {
        Assert.hasLength(url, "请求url不能为空字符串。");