springBoot项目系统内发送http请求其他系统

http工具类:

package com.jeesite.modules.utils;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 提供通过HTTP协议获取内容的方法 <br/>
 * 所有提供方法中的params参数在内部不会进行自动的url encode,如果提交参数需要进行url encode,请调用方自行处理
 *
 * @author admin
 * @Description: HTTP请求代理工具
 */
public class HttpUtils {
    
    

	private static final Logger logger = LoggerFactory.getLogger(HttpUtils.class);


	/**
	 * 支持的Http method
	 */
	private static enum HttpMethod {
    
    
		POST, DELETE, GET, PUT, HEAD
	}


	/**
	 * 发送HttpPost请求
	 *
	 * @param strURL
	 *            服务地址
	 * @param params
	 *            json字符串,例如: "{ \"id\":\"12345\" }" ;其中属性名必须带双引号<br/>
	 * @return 成功:返回json字符串<br/>
	 */
	public static String sendPost(String strURL, String params) {
    
    
		BufferedReader reader = null;
		try {
    
    
			URL url = new URL(strURL);// 创建连接
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setDoOutput(true);
			connection.setDoInput(true);
			connection.setUseCaches(false);
			connection.setInstanceFollowRedirects(true);
			connection.setRequestMethod("POST"); // 设置请求方式
			connection.setRequestProperty("content-type", "application/json");// 设置发送数据的格式
			// connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式<br>、      //因为要登陆才可以执行请求,所以这里要带cookie的header
			//connection.setRequestProperty("Cookie", "geli-session=41b6d86db1e97df5:-60813064:16d0571e3e8:-3a58377431669b192d08; c=58ydwry; u=58zqg8z; pcsuv=1482230765738.a.46958170; u4ad=4031lfgby; UM_distinctid=16be539fa796b9-099f04a8a5445d-4144032b-1fa400-16be539fa7a7d3; visitedfid=22035D16260D14152; gr_user_id=b2a6251c-dddb-4502-91f9-0b6f10ccb260; favCar=%E5%A5%A5%E8%BF%AAA3_9550%7C%E5%A5%A5%E8%BF%AAA8L_7%7C%E7%A6%8F%E5%85%8B%E6%96%AFActive_25101%7C%E8%BD%A9%E9%80%B8_3996%7C%E5%88%9B%E7%95%8C_24483; locationWap=%7B%22expires%22%3A1568884707863%2C%22city%22%3A%22%E5%93%88%E5%B0%94%E6%BB%A8%E5%B8%82%22%2C%22cityUser%22%3A%22%E5%93%88%E5%B0%94%E6%BB%A8%E5%B8%82%22%2C%22cityCode%22%3A%22230100%22%2C%22proCode%22%3A%22230000%22%2C%22cityCodeUser%22%3A%22230100%22%2C%22proCodeUser%22%3A%22230000%22%7D; AplocationWap=%7B%22regionId%22%3A187%2C%20%22regionName%22%3A%22%E5%93%88%E5%B0%94%E6%BB%A8%22%7D; pcLocate=%7B%22proCode%22%3A%22440000%22%2C%22pro%22%3A%22%E5%B9%BF%E4%B8%9C%E7%9C%81%22%2C%22cityCode%22%3A%22441900%22%2C%22city%22%3A%22%E4%B8%9C%E8%8E%9E%E5%B8%82%22%2C%22dataType%22%3A%22user%22%2C%22expires%22%3A1571888929008%7D; pcautoLocate=%7B%22proId%22%3A5%2C%22cityId%22%3A6%2C%22url%22%3A%22%2F%2Fwww.pcauto.com.cn%2Fqcbj%2Fdg%2F%22%2C%22dataTypeAuto%22%3A%22user%22%7D; PClocation=6; pcuvdata=lastAccessTime=1570869719999|visits=289; channel=9396");
			//connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
			connection.connect();
			//一定要用BufferedReader 来接收响应, 使用字节来接收响应的方法是接收不到内容的
			OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码
			out.append(params);
			out.flush();
			out.close();
			// 读取响应
			reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
			String line;
			String res = "";
			while ((line = reader.readLine()) != null) {
    
    
				res += line;
			}
			reader.close();
			return res;
		} catch (IOException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "error"; // 自定义错误信息
	}


	/**
	 * 发送HttpPost请求
	 *
	 * @param strURL
	 *            服务地址
	 * @param params
	 *            json字符串,例如: "{ \"id\":\"12345\" }" ;其中属性名必须带双引号<br/>
	 * @return 成功:返回json字符串<br/>
	 */
	public static String sendPost2(String strURL, String params,String authorization) {
    
    
		BufferedReader reader = null;
		try {
    
    
			URL url = new URL(strURL);// 创建连接
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setDoOutput(true);
			connection.setDoInput(true);
			connection.setUseCaches(false);
			connection.setInstanceFollowRedirects(true);
			connection.setRequestMethod("POST"); // 设置请求方式
			connection.setRequestProperty("content-type", "application/json");// 设置发送数据的格式
			connection.setRequestProperty("authorization", authorization);
			// connection.setRequestProperty("Accept", "application/json"); // 设置接收数据的格式<br>、      //因为要登陆才可以执行请求,所以这里要带cookie的header
			//connection.setRequestProperty("Cookie", "geli-session=41b6d86db1e97df5:-60813064:16d0571e3e8:-3a58377431669b192d08; c=58ydwry; u=58zqg8z; pcsuv=1482230765738.a.46958170; u4ad=4031lfgby; UM_distinctid=16be539fa796b9-099f04a8a5445d-4144032b-1fa400-16be539fa7a7d3; visitedfid=22035D16260D14152; gr_user_id=b2a6251c-dddb-4502-91f9-0b6f10ccb260; favCar=%E5%A5%A5%E8%BF%AAA3_9550%7C%E5%A5%A5%E8%BF%AAA8L_7%7C%E7%A6%8F%E5%85%8B%E6%96%AFActive_25101%7C%E8%BD%A9%E9%80%B8_3996%7C%E5%88%9B%E7%95%8C_24483; locationWap=%7B%22expires%22%3A1568884707863%2C%22city%22%3A%22%E5%93%88%E5%B0%94%E6%BB%A8%E5%B8%82%22%2C%22cityUser%22%3A%22%E5%93%88%E5%B0%94%E6%BB%A8%E5%B8%82%22%2C%22cityCode%22%3A%22230100%22%2C%22proCode%22%3A%22230000%22%2C%22cityCodeUser%22%3A%22230100%22%2C%22proCodeUser%22%3A%22230000%22%7D; AplocationWap=%7B%22regionId%22%3A187%2C%20%22regionName%22%3A%22%E5%93%88%E5%B0%94%E6%BB%A8%22%7D; pcLocate=%7B%22proCode%22%3A%22440000%22%2C%22pro%22%3A%22%E5%B9%BF%E4%B8%9C%E7%9C%81%22%2C%22cityCode%22%3A%22441900%22%2C%22city%22%3A%22%E4%B8%9C%E8%8E%9E%E5%B8%82%22%2C%22dataType%22%3A%22user%22%2C%22expires%22%3A1571888929008%7D; pcautoLocate=%7B%22proId%22%3A5%2C%22cityId%22%3A6%2C%22url%22%3A%22%2F%2Fwww.pcauto.com.cn%2Fqcbj%2Fdg%2F%22%2C%22dataTypeAuto%22%3A%22user%22%7D; PClocation=6; pcuvdata=lastAccessTime=1570869719999|visits=289; channel=9396");
			//connection.setRequestProperty("Content-Type", "application/json"); // 设置发送数据的格式
			connection.connect();
			//一定要用BufferedReader 来接收响应, 使用字节来接收响应的方法是接收不到内容的
			OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "UTF-8"); // utf-8编码
			out.append(params);
			out.flush();
			out.close();
			// 读取响应
			reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
			String line;
			String res = "";
			while ((line = reader.readLine()) != null) {
    
    
				res += line;
			}
			reader.close();
			return res;
		} catch (IOException e) {
    
    
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return "error"; // 自定义错误信息
	}


	@SuppressWarnings({
    
    "unchecked", "rawtypes"})
	private static String invokeUrl(String url, Map params, Map<String, String> headers, int connectTimeout, int readTimeout, String encoding, HttpMethod method) {
    
    
		//构造请求参数字符串
		StringBuilder paramsStr = null;
		if (params != null) {
    
    
			paramsStr = new StringBuilder();
			Set<Map.Entry> entries = params.entrySet();
			for (Map.Entry entry : entries) {
    
    
				String value = (entry.getValue() != null) ? (String.valueOf(entry.getValue())) : "";
				paramsStr.append(entry.getKey() + "=" + value + "&");
			}
			//只有POST方法才能通过OutputStream(即form的形式)提交参数
			if (method != HttpMethod.POST) {
    
    
				url += "?" + paramsStr.toString();
			}
		}
		if (method != HttpMethod.POST) {
    
    
			url = url.substring(0, url.length() - 1);
		}
		URL uUrl = null;
		HttpURLConnection conn = null;
		BufferedWriter out = null;
		BufferedReader in = null;
		try {
    
    
			//创建和初始化连接
			uUrl = new URL(url);
			conn = (HttpURLConnection) uUrl.openConnection();
			conn.setRequestProperty("Content-Type", "application/json");
			conn.setRequestMethod(method.toString());
			conn.setDoOutput(true);
			conn.setDoInput(true);
			//设置连接超时时间
			conn.setConnectTimeout(connectTimeout);
			//设置读取超时时间
			conn.setReadTimeout(readTimeout);
			//指定请求header参数
			if (headers != null && headers.size() > 0) {
    
    
				Set<String> headerSet = headers.keySet();
				for (String key : headerSet) {
    
    
					conn.setRequestProperty(key, headers.get(key));
				}
			}

			if (paramsStr != null && method == HttpMethod.POST) {
    
    
				//发送请求参数
				out = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(), encoding));
				out.write(paramsStr.toString());
				out.flush();
			}

			//接收返回结果
			StringBuilder result = new StringBuilder();
			in = new BufferedReader(new InputStreamReader(conn.getInputStream(), encoding));
			if (in != null) {
    
    
				String line = "";
				while ((line = in.readLine()) != null) {
    
    
					result.append(line);
				}
			}
			return result.toString();
		} catch (Exception e) {
    
    
			logger.error("调用接口[" + url + "]失败!请求URL:" + url + ",参数:" + params, e);
			//处理错误流,提高http连接被重用的几率
			try {
    
    
				byte[] buf = new byte[100];
				InputStream es = conn.getErrorStream();
				if (es != null) {
    
    
					while (es.read(buf) > 0) {
    
    
						;
					}
					es.close();
				}
			} catch (Exception e1) {
    
    
				e1.printStackTrace();
			}
		} finally {
    
    
			try {
    
    
				if (out != null) {
    
    
					out.close();
				}
			} catch (Exception e) {
    
    
				e.printStackTrace();
			}
			try {
    
    
				if (in != null) {
    
    
					in.close();
				}
			} catch (Exception e) {
    
    
				e.printStackTrace();
			}
			//关闭连接
			if (conn != null) {
    
    
				conn.disconnect();
			}
		}
		return null;
	}

	/**
	 * POST方法提交Http请求,语义为“增加” <br/>
	 * 注意:Http方法中只有POST方法才能使用body来提交内容
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String post(String url, Map params, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, null, connectTimeout, readTimeout, charset, HttpMethod.POST);
	}

	/**
	 * POST方法提交Http请求,语义为“增加” <br/>
	 * 注意:Http方法中只有POST方法才能使用body来提交内容
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param headers        请求头参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String post(String url, Map params, Map<String, String> headers, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, headers, connectTimeout, readTimeout, charset, HttpMethod.POST);
	}

	/**
	 * GET方法提交Http请求,语义为“查询”
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String get(String url, Map params, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, null, connectTimeout, readTimeout, charset, HttpMethod.GET);
	}

	/**
	 * GET方法提交Http请求,语义为“查询”
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param headers        请求头参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String get(String url, Map params, Map<String, String> headers, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, headers, connectTimeout, readTimeout, charset, HttpMethod.GET);
	}

	/**
	 * PUT方法提交Http请求,语义为“更改” <br/>
	 * 注意:PUT方法也是使用url提交参数内容而非body,所以参数最大长度收到服务器端实现的限制,Resin大概是8K
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String put(String url, Map params, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, null, connectTimeout, readTimeout, charset, HttpMethod.PUT);
	}

	/**
	 * PUT方法提交Http请求,语义为“更改” <br/>
	 * 注意:PUT方法也是使用url提交参数内容而非body,所以参数最大长度收到服务器端实现的限制,Resin大概是8K
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param headers        请求头参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String put(String url, Map params, Map<String, String> headers, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, headers, connectTimeout, readTimeout, charset, HttpMethod.PUT);
	}

	/**
	 * DELETE方法提交Http请求,语义为“删除”
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String delete(String url, Map params, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, null, connectTimeout, readTimeout, charset, HttpMethod.DELETE);
	}

	/**
	 * DELETE方法提交Http请求,语义为“删除”
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param headers        请求头参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String delete(String url, Map params, Map<String, String> headers, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, headers, connectTimeout, readTimeout, charset, HttpMethod.DELETE);
	}

	/**
	 * HEAD方法提交Http请求,语义同GET方法  <br/>
	 * 跟GET方法不同的是,用该方法请求,服务端不返回message body只返回头信息,能节省带宽
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String head(String url, Map params, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, null, connectTimeout, readTimeout, charset, HttpMethod.HEAD);
	}

	/**
	 * HEAD方法提交Http请求,语义同GET方法  <br/>
	 * 跟GET方法不同的是,用该方法请求,服务端不返回message body只返回头信息,能节省带宽
	 *
	 * @param url            资源路径(如果url中已经包含参数,则params应该为null)
	 * @param params         参数
	 * @param headers        请求头参数
	 * @param connectTimeout 连接超时时间(单位为ms)
	 * @param readTimeout    读取超时时间(单位为ms)
	 * @param charset        字符集(一般该为“utf-8”)
	 * @return
	 */
	public static String head(String url, Map params, Map<String, String> headers, int connectTimeout, int readTimeout, String charset) {
    
    
		return invokeUrl(url, params, headers, connectTimeout, readTimeout, charset, HttpMethod.HEAD);
	}

	

}

使用

package com.jeesite.modules.sxyapi.web;

import com.jeesite.modules.ConfigAttibutes;
import com.jeesite.modules.sxyapi.service.sxyService;
import com.jeesite.modules.utils.HttpUtils;
import net.sf.json.JSON;
import org.json.JSONArray;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/** 四象仪接口
 * created by zhangyf on 2020-04-08 16:32
 */
@RestController
@RequestMapping(value = "${frontPath}/sxyapi")
public class sxyController {
    
    

	protected Logger logger = LoggerFactory.getLogger(getClass());

	@Autowired
	private sxyService sxyService;

	@Autowired
	private ConfigAttibutes configAttibutes;


	/**
	 * 新建患者
	 * 参数
	 * doctorid
	 * name
	 * gender
	 * birthday
	 * idnumber
	 * call
	 */
	@RequestMapping(value = "addPatients")
	public Object addPatients(@RequestParam Map<String, Object> params) {
    
    

		params.put("status", "0");
		String url = (String) (configAttibutes.getApiUrl().get("patientsUrl"));
		if (null == params.get("doctorid") || "".equals(params.get("doctorid"))) {
    
    
			params.put("doctorid", configAttibutes.getApiUrl().get("doctorid"));
		}
		//SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd HH:mm:ss");
		logger.info("\n\taddPatients:\n\t"+params.toString());
		net.sf.json.JSONObject jsonMap = net.sf.json.JSONObject.fromObject(params);
		String jsonData = com.alibaba.fastjson.JSONObject.toJSONString(jsonMap);

		JSONObject result  = new JSONObject(HttpUtils.sendPost(url,jsonData));
		if (!"1".equals(String.valueOf(result.get("status")))) {
    
    
			logger.info("*****************新建患者失败*******************:"+"\t\n" +result.get("info"));
			params.put("status", "0");
			params.put("info", result.get("info"));
		}else{
    
    
			logger.info("\n\tdata:\n\t"+result.get("data").toString());
			params.put("status", "1");
			params.put("result", result.get("data").toString());
		}
		return params;
	}

	/**
	 *
	 * 获取患者测评结果(中间程序调用国医慧联PC端API)
	 *  http://118.178.137.95:9000/api/v1/evas/bef5a4bcf88346419924ff23b8ef2352
	 *  返回值
	 *  {
	 * "status": 1,
	 * "info": "OK",
	 * "data": {
	 * "uid": "bef5a4bcf88346419924ff23b8ef2352",
	 * "puid": "7edecaced4e44f2695fc246b7665942c",
	 * "doctorid": 12345,
	 * "eva": 4,
	 * "title": "孕期女性健康状态测评",
	 * "result": "痰热",
	 * "report1": "痰热",
	 * "report2": "气滞:3;痰湿:60;痰热:60;肝火:15",
	 * "report3": "痰热",
	 * "recbrief": "",
	 * "recdetail": "痰热...(下略)",
	 * "intbreif": "",
	 * "intdetail": "",
	 * "createtime": "2018-08-15T15:31:20",
	 * "updatetime": "2018-08-15T15:31:20"
	 * }
	 * }
	 */

	@RequestMapping(value = "evasResult")
	public Object getEvasResult(@RequestParam Map<String, Object> params) {
    
    
		//根据身份证获取患者id
		//JSONObject patienInfo ;
		String patientUrl = (String) (configAttibutes.getApiUrl().get("patientsUrl"));

		/*if (null == params.get("idnumber") || "".equals(params.get("idnumber"))) {

			patienInfo  = new JSONObject(HttpUtils.get(patientUrl, null, 3000, 3000, "UTF-8"));
		}else{
			patienInfo  = new JSONObject(HttpUtils.get(patientUrl, params, 3000, 3000, "UTF-8"));
		}*/

		JSONObject patientInfo  = new JSONObject(HttpUtils.get(patientUrl, params, 3000, 3000, "UTF-8"));
		if (!"1".equals(String.valueOf(patientInfo.get("status")))) {
    
    
			System.out.println("获取患者信息失败:" + patientInfo.get("info"));
		} else{
    
    
			JSONArray patientInfoArray = (JSONArray) patientInfo.get("data");
			patientInfoArray.getJSONObject(0).get("uid");
			params.put("puid", patientInfoArray.getJSONObject(0).get("uid"));//患者id
		}
		//根据患者id获取测评列表
		//params.put("eva", 4);
		String evasUrl = (String) (configAttibutes.getApiUrl().get("evasUrl"));
		JSONObject evaResult  = new JSONObject(HttpUtils.get(evasUrl, params, 3000, 3000, "UTF-8"));
		List evaList =null;
		if (!"1".equals(String.valueOf(evaResult.get("status")))) {
    
    
			logger.info("获取测评列表失败:" + evaResult.get("info"));
		} else {
    
    

			JSONArray evaArray = (JSONArray) evaResult.get("data");
			evaList =evaArray.toList();//这里面的uid则为测评id

		}


		//根据返回的测评id再获取测评结果
		if (null != evaList && evaList.size() > 0) {
    
    
			for (int i = 0; i < evaList.size(); i++) {
    
    
			String uid = (String) ((HashMap) evaList.get(i)).get("uid");
			String url = (String) (configAttibutes.getApiUrl().get("evasResultUrl"))+"/"+uid;
			JSONObject result  = new JSONObject(HttpUtils.get(url, params, 3000, 3000, "UTF-8"));
				if (!"1".equals(String.valueOf(result.get("status")))) {
    
    
					System.out.println("获取测评结果失败:"+uid+"\t\n" + result.get("info"));
				}else{
    
    
					JSONObject evaResults = (JSONObject) result.get("data");
					logger.info(" title:"+evaResults.get("title")
							+" uid:"+evaResults.get("uid")+" "
							+" puid:"+evaResults.get("puid")
							+" eva:"+evaResults.get("eva")
							+" doctorid:"+evaResults.get("doctorid")
							+" result:"+evaResults.get("result")
							+" createtime:"+evaResults.get("createtime")
					);
				}
			}
		}


		return params;
	}



















	/**
	 * 获取患者信息
	 * http://118.178.137.95:9000/api/v1/patients/?idnumber=123456198707311234
	 *
	 * 返回值{
	 * "status": 1,  0-请求失败,1-请求成功
	 * "info": "OK", 当 status 为 0 时,info 会返回具体错误原因,否则返回“OK”。
	 * "count": 1, 返回结果的个数
	 * "data": [
		 * {
		 * "uid": "7edecaced4e44f2695fc246b7665942c",
		 * "name": "包霜",
		 * "gender": 2,
		 * "birthday": "1987-07-31T00:00:00",
		 * "idnumber": "123456198707311234",
		 * "call": "",
		 * "createtime": "2018-07-23T14:55:12",
		 * "updatetime": "2018-08-15T15:18:17"
		 * }
	 * ]
	 * }
	 */
	@RequestMapping(value = "patients")
	public Object getPatients(@RequestParam Map<String, Object> params) {
    
    
		JSONObject result ;
		params.put("idnumber", "123456198707311234");//身份证号
		String url = (String) (configAttibutes.getApiUrl().get("patientsUrl"));
		if (null == params.get("idnumber") || "".equals(params.get("idnumber"))) {
    
    

			result  = new JSONObject(HttpUtils.get(url, null, 3000, 3000, "UTF-8"));
		}else{
    
    
			result  = new JSONObject(HttpUtils.get(url, params, 3000, 3000, "UTF-8"));
		}

		return params;
	}

	 /**
	 * 获取患者测评列表(中间程序调用国医慧联PC端API)
	 *
	 * http://118.178.137.95:9000/api/v1/evas/?puid=7edecaced4e44f2695fc246b7665942c&eva=4&limit=2
	 * 返回值
	 * {
	 * "status": 1,
	 * "info": "OK",
	 * "count": 5,
	 * "data": [
		 * {
		 * "uid": "bef5a4bcf88346419924ff23b8ef2352",
		 * "puid": "7edecaced4e44f2695fc246b7665942c",
		 * "doctorid": 12345,
		 * "eva": 4,
		 * "title": "孕期女性健康状态测评",
		 * "result": "痰热",
		 * "createtime": "2018-08-15T15:31:20",
		 * "updatetime": "2018-08-15T15:31:20"
		 * },
		 * {
		 * "uid": "57118c37fb1c4b62a2597a32f7811d08",
		 * "puid": "7edecaced4e44f2695fc246b7665942c",
		 * "doctorid": 12345,
		 * "eva": 4,
		 * "title": "孕期女性健康状态测评",
		 * "result": "阴虚血热;痰热;肝肾阴虚",
		 * "createtime": "2018-08-15T15:18:42",
		 * "updatetime": "2018-08-15T15:18:42"
		 * }
	 * ]
	 * }
	  */

	  @RequestMapping(value = "evas")
	  public Object getEvas(@RequestParam Map<String, Object> params) {
    
    
		  params.put("puid", "7edecaced4e44f2695fc246b7665942c");
		  String url = (String) (configAttibutes.getApiUrl().get("evasUrl"));
		  JSONObject result  = new JSONObject(HttpUtils.get(url, params, 3000, 3000, "UTF-8"));
		  return params;
	  }


























	@RequestMapping(value = "test")
	public Object test(@RequestParam Map<String, Object> params) {
    
    
		List list = this.sxyService.test();
		System.out.println("********");
		return null;
	}



}

猜你喜欢

转载自blog.csdn.net/weixin_38323645/article/details/105443985