陈昶聿
16 小时以前 ebf4b72af820750b3207b7bee6881252b79eed31
ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
@@ -13,6 +13,12 @@
import javax.net.ssl.TrustManager;
import javax.net.ssl.X509TrustManager;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.ruoyi.common.constant.Constants;
@@ -112,6 +118,7 @@
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            conn.setRequestProperty("Accept-Charset", "utf-8");
            conn.setRequestProperty("Charsert", "UTF-8");
            conn.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
            conn.setDoOutput(true);
            conn.setDoInput(true);
@@ -308,4 +315,66 @@
            return true;
        }
    }
    public static String sendPost(String url){
        HttpPost post = new HttpPost(url);
        CloseableHttpClient client = HttpClients.createDefault();
        //启动执行请求,并获得返回值
        CloseableHttpResponse execute = null;
        try {
            execute = client.execute(post);
            HttpEntity entity = execute.getEntity();
            //把实体对象转换为string
            return EntityUtils.toString(entity, "UTF-8");
        } catch (IOException e) {
            e.printStackTrace();
        }
        return "调用失败";
    }
    /**
     * 对URL参数进行编码,处理中文乱码问题
     *
     * @param params 参数字符串,格式:name1=value1&name2=value2
     * @param charset 编码格式
     * @return 编码后的参数字符串
     */
    private static String encodeParams(String params, String charset) {
        if (StringUtils.isBlank(params)) {
            return params;
        }
        try {
            StringBuilder encodedParams = new StringBuilder();
            String[] pairs = params.split("&");
            for (int i = 0; i < pairs.length; i++) {
                String pair = pairs[i];
                if (StringUtils.isNotBlank(pair)) {
                    int idx = pair.indexOf("=");
                    if (idx > 0) {
                        String key = pair.substring(0, idx);
                        String value = pair.substring(idx + 1);
                        // 对key和value都进行URL编码
                        encodedParams.append(URLEncoder.encode(key, charset))
                                .append("=")
                                .append(URLEncoder.encode(value, charset));
                    } else {
                        // 没有等号,整个作为key
                        encodedParams.append(URLEncoder.encode(pair, charset));
                    }
                    if (i < pairs.length - 1) {
                        encodedParams.append("&");
                    }
                }
            }
            return encodedParams.toString();
        } catch (UnsupportedEncodingException e) {
            log.error("URL参数编码失败", e);
            return params;
        }
    }
}