You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					
					
						
							86 lines
						
					
					
						
							3.3 KiB
						
					
					
				
			
		
		
	
	
							86 lines
						
					
					
						
							3.3 KiB
						
					
					
				package com.ynxbd.common.helper.xbd;
 | 
						|
 | 
						|
import com.alibaba.fastjson.JSONObject;
 | 
						|
import com.ynxbd.common.helper.http.OkHttpHelper;
 | 
						|
import lombok.extern.slf4j.Slf4j;
 | 
						|
import okhttp3.*;
 | 
						|
 | 
						|
import java.net.URLEncoder;
 | 
						|
import java.nio.charset.StandardCharsets;
 | 
						|
import java.util.HashMap;
 | 
						|
import java.util.Map;
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * @author 李进才
 | 
						|
 * @ClassName HttpHelper
 | 
						|
 * @Description 在线病历打印请求的http请求方法
 | 
						|
 * @date 2023/4/20 09:40
 | 
						|
 */
 | 
						|
@Slf4j
 | 
						|
public class HttpHelper {
 | 
						|
    /**
 | 
						|
     * Get执行后台指定方法
 | 
						|
     * @param methodName 方法名
 | 
						|
     * @param paramDic 参数
 | 
						|
     * @return 返回的数据(Json)
 | 
						|
     */
 | 
						|
    public static String ExecMethodGet (String methodName, Object paramDic){
 | 
						|
        return UseGet(methodName,paramDic);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Get执行后台指定方法
 | 
						|
     * @param methodName 方法名
 | 
						|
     * @return 返回的数据(Json)
 | 
						|
     */
 | 
						|
    public static String ExecMethodGet (String methodName){
 | 
						|
        return UseGet(methodName,null);
 | 
						|
    }
 | 
						|
    private static String UseGet(String methodName, Object paramDic) {
 | 
						|
        try {
 | 
						|
            String url = "http://192.168.12.66:8080";
 | 
						|
            OkHttpClient httpClient = OkHttpHelper.creatClient();
 | 
						|
            HttpUrl.Builder urlBuilder = HttpUrl.parse(url+"/api/SqlContext/ExecMethodByNameEncryption").newBuilder();
 | 
						|
            // 加密序列化
 | 
						|
            String methodNameEnv = URLEncoder.encode(EncHelper.AES_Encrypt(methodName), StandardCharsets.UTF_8.toString());
 | 
						|
            urlBuilder.addQueryParameter("methodNameEnc", methodNameEnv);
 | 
						|
            String paramJson = JSONObject.toJSONString(paramDic==null? "" :paramDic);
 | 
						|
            // json 加密序列化传入链接
 | 
						|
            String paramsStrEnv = URLEncoder.encode(EncHelper.AES_Encrypt(paramJson), StandardCharsets.UTF_8.toString());
 | 
						|
            urlBuilder.addQueryParameter("paramsStrEnc", paramsStrEnv);
 | 
						|
            String md5Check = URLEncoder.encode(EncHelper.MD5Encrypt64(methodName + paramJson),StandardCharsets.UTF_8.toString());
 | 
						|
            urlBuilder.addQueryParameter("modCode", md5Check);
 | 
						|
 | 
						|
 | 
						|
            Request request = new Request.Builder()
 | 
						|
                    .url(urlBuilder.toString())
 | 
						|
                    .get()
 | 
						|
                    .build();
 | 
						|
            Response response = httpClient.newCall(request).execute();
 | 
						|
            // 清除并关闭线程池
 | 
						|
//            httpClient.dispatcher().executorService().shutdown();
 | 
						|
            // 清除并关闭连接池
 | 
						|
//            httpClient.connectionPool().evictAll();
 | 
						|
            JSONObject JSON = JSONObject.parseObject(response.body().string());
 | 
						|
            if(response.isSuccessful()){
 | 
						|
                return JSON.getString("Data").replaceAll(" ","");
 | 
						|
            }
 | 
						|
            else {
 | 
						|
                log.error("[在线病例打印]返回错误:方法名-{},错误-{}",methodName,JSON.getString("Msg"));
 | 
						|
                throw new Exception("方法:" + methodName + "错误:" + JSON.getString("Msg") );
 | 
						|
            }
 | 
						|
        }
 | 
						|
        catch (Exception e){
 | 
						|
            log.error("[在线病例打印]请求错误-{}",e.getMessage());
 | 
						|
            return e.getMessage();
 | 
						|
        }
 | 
						|
 | 
						|
    }
 | 
						|
 | 
						|
    public static void main(String[] args) {
 | 
						|
        Map<String,String> test = new HashMap<>();
 | 
						|
        test.put("patientID","10947918");
 | 
						|
        System.out.println(ExecMethodGet("BLSM_Appointment_GetBA", test));
 | 
						|
    }
 | 
						|
}
 | 
						|
 |