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));
|
|
}
|
|
}
|
|
|