1、eoLinker-API Shop 常见疾病查询 Java调 用示例代码常见疾病查询提供所患疾病的病因、症状、检查、用药、治疗、并发症等方面的详细分析资料该产品拥有以下APIs :1. 获取疾病部位列表2. 通过部位获取疾病列表3. 关键字获取疾病列表4. 获取疾病列表5. 查询疾病信息6. 通过症状获取疾病列表注意,该示例代码仅适用于 网站下API 使用该产品前,您需要通过 https:/ 申请API 服务1.获 取疾病部位列表package net.apishop.www.controller;import java.io.DataOutputStream;import java.io.
2、IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .MalformedURLException;import .URL;import .URLEncoder;import java.util.HashMap;import java.util.Map;import com.alibaba.fastjson.JSONObject;/* httpUrlConnection访问远程接口工具*/public class Ap
3、i/* 方法体说明:向远 程接口发起请求,返回字节 流类型结果* param url 接口地址* param requestMethod 请求方式* param params 传递参数 重点:参数值 需要用Base64进行转码* return InputStream 返回结果*/public static InputStream httpRequestToStream(String url, String requestMethod, Map params)InputStream is = null;tryString parameters = “;boolean hasParams = fa
4、lse;/ 将参数集合拼接成特定格式,如name=zhangsanparameters += key + “=“ + value + “hasParams = true;if (hasParams)parameters = parameters.substring(0, parameters.length() - 1);/ 请求方式是否为getboolean isGet = “get“.equalsIgnoreCase(requestMethod);/ 请求方式是否为postboolean isPost = “post“.equalsIgnoreCase(requestMethod);if (
5、isGet)url += “?“ + parameters;URL u = new URL(url);HttpURLConnection conn = (HttpURLConnection) u.openConnection();/ 请求的参数类型(使用restlet框架时,为了兼容框架,必须设置Content-Type为“”空)conn.setRequestProperty(“Content-Type“, “application/octet-stream“);/ conn.setRequestProperty(“Content-Type“, “application/x-www-form-
6、urlencoded“);/ 设置连接超时时间conn.setConnectTimeout(50000);/ 设置读取返回内容超时时间conn.setReadTimeout(50000);/ 设置向HttpURLConnection对象中输出,因为post方式将请求参数放在http正文内,因此需要设置为ture,默认falseif (isPost)conn.setDoOutput(true);/ 设置从HttpURLConnection对象读入,默认为trueconn.setDoInput(true);/ 设置是否使用缓存,post方式不能使用缓存if (isPost)conn.setUseC
7、aches(false);/ 设置请求方式,默认为GETconn.setRequestMethod(requestMethod);/ post方式需要将传递的参数输出到conn对象中if (isPost)DataOutputStream dos = new DataOutputStream(conn.getOutputStream();dos.writeBytes(parameters);dos.flush();dos.close();/ 从HttpURLConnection对象中读取响应的消息/ 执行该语句时才正式发起请求is = conn.getInputStream();catch(Un
8、supportedEncodingException e)e.printStackTrace();catch(MalformedURLException e)e.printStackTrace();catch(IOException e)e.printStackTrace();return is;public static void main(String args)String url = “https:/ requestMethod = “POST“;Map params = new HashMap(); params.put(“apiKey“,“your_api_key“); /需要从
9、获取 String result = null;tryInputStream is = httpRequestToStream(url, requestMethod, params);byte b = new byteis.available();is.read(b);result = new String(b);catch(IOException e)e.printStackTrace();if (result != null)JSONObject jsonObject = JSONObject.parseObject(result);String status_code = jsonObj
10、ect.getString(“statusCode“);if (status_code = “000000“)/ 状态码为000000, 说明请求成功System.out.println(“请求成功:“ + jsonObject.getString(“result“);else/ 状态码非000000, 说明请求失败System.out.println(“请求失败:“ + jsonObject.getString(“desc“);else/ 返回内容异常,发送请求失败,以下可根据 业务逻辑自行修改System.out.println(“发送请求失败“);2.通 过 部位获取疾病列表packag
11、e net.apishop.www.controller;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .MalformedURLException;import .URL;import .URLEncoder;import java.util.HashMap;import java.util.Map;import c
12、om.alibaba.fastjson.JSONObject;/* httpUrlConnection访问远程接口工具*/public class Api/* 方法体说明:向远 程接口发起请求,返回字节 流类型结果* param url 接口地址* param requestMethod 请求方式* param params 传递参数 重点:参数值 需要用Base64进行转码* return InputStream 返回结果*/public static InputStream httpRequestToStream(String url, String requestMethod, Map
13、params)InputStream is = null;tryString parameters = “;boolean hasParams = false;/ 将参数集合拼接成特定格式,如name=zhangsanparameters += key + “=“ + value + “hasParams = true;if (hasParams)parameters = parameters.substring(0, parameters.length() - 1);/ 请求方式是否为getboolean isGet = “get“.equalsIgnoreCase(requestMetho
14、d);/ 请求方式是否为postboolean isPost = “post“.equalsIgnoreCase(requestMethod);if (isGet)url += “?“ + parameters;URL u = new URL(url);HttpURLConnection conn = (HttpURLConnection) u.openConnection();/ 请求的参数类型(使用restlet框架时,为了兼容框架,必须设置Content-Type为“”空)conn.setRequestProperty(“Content-Type“, “application/octet
15、-stream“);/ conn.setRequestProperty(“Content-Type“, “application/x-www-form-urlencoded“);/ 设置连接超时时间conn.setConnectTimeout(50000);/ 设置读取返回内容超时时间conn.setReadTimeout(50000);/ 设置向HttpURLConnection对象中输出,因为post方式将请求参数放在http正文内,因此需要设置为ture,默认falseif (isPost)conn.setDoOutput(true);/ 设置从HttpURLConnection对象读入
16、,默认为trueconn.setDoInput(true);/ 设置是否使用缓存,post方式不能使用缓存if (isPost)conn.setUseCaches(false);/ 设置请求方式,默认为GETconn.setRequestMethod(requestMethod);/ post方式需要将传递的参数输出到conn对象中if (isPost)DataOutputStream dos = new DataOutputStream(conn.getOutputStream();dos.writeBytes(parameters);dos.flush();dos.close();/ 从H
17、ttpURLConnection对象中读取响应的消息/ 执行该语句时才正式发起请求is = conn.getInputStream();catch(UnsupportedEncodingException e)e.printStackTrace();catch(MalformedURLException e)e.printStackTrace();catch(IOException e)e.printStackTrace();return is;public static void main(String args)String url = “https:/ requestMethod = “
18、POST“;Map params = new HashMap(); params.put(“apiKey“,“your_api_key“); /需要从 获取 params.put(“page“, “); /当前页码(默认1 ) params.put(“pageSize“, “); /该页疾病数量(默认15) params.put(“site“, “); /发病部位 String result = null;tryInputStream is = httpRequestToStream(url, requestMethod, params);byte b = new byteis.availab
19、le();is.read(b);result = new String(b);catch(IOException e)e.printStackTrace();if (result != null)JSONObject jsonObject = JSONObject.parseObject(result);String status_code = jsonObject.getString(“statusCode“);if (status_code = “000000“)/ 状态码为000000, 说明请求成功System.out.println(“请求成功:“ + jsonObject.getS
20、tring(“result“);else/ 状态码非000000, 说明请求失败System.out.println(“请求失败:“ + jsonObject.getString(“desc“);else/ 返回内容异常,发送请求失败,以下可根据 业务逻辑自行修改System.out.println(“发送请求失败“);3.关 键 字获取疾病列表package net.apishop.www.controller;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;impor
21、t java.io.UnsupportedEncodingException;import .HttpURLConnection;import .MalformedURLException;import .URL;import .URLEncoder;import java.util.HashMap;import java.util.Map;import com.alibaba.fastjson.JSONObject;/* httpUrlConnection访问远程接口工具*/public class Api/* 方法体说明:向远 程接口发起请求,返回字节 流类型结果* param url 接
22、口地址* param requestMethod 请求方式* param params 传递参数 重点:参数值 需要用Base64进行转码* return InputStream 返回结果*/public static InputStream httpRequestToStream(String url, String requestMethod, Map params)InputStream is = null;tryString parameters = “;boolean hasParams = false;/ 将参数集合拼接成特定格式,如name=zhangsanparameters
23、+= key + “=“ + value + “hasParams = true;if (hasParams)parameters = parameters.substring(0, parameters.length() - 1);/ 请求方式是否为getboolean isGet = “get“.equalsIgnoreCase(requestMethod);/ 请求方式是否为postboolean isPost = “post“.equalsIgnoreCase(requestMethod);if (isGet)url += “?“ + parameters;URL u = new UR
24、L(url);HttpURLConnection conn = (HttpURLConnection) u.openConnection();/ 请求的参数类型(使用restlet框架时,为了兼容框架,必须设置Content-Type为“”空)conn.setRequestProperty(“Content-Type“, “application/octet-stream“);/ conn.setRequestProperty(“Content-Type“, “application/x-www-form-urlencoded“);/ 设置连接超时时间conn.setConnectTimeou
25、t(50000);/ 设置读取返回内容超时时间conn.setReadTimeout(50000);/ 设置向HttpURLConnection对象中输出,因为post方式将请求参数放在http正文内,因此需要设置为ture,默认falseif (isPost)conn.setDoOutput(true);/ 设置从HttpURLConnection对象读入,默认为trueconn.setDoInput(true);/ 设置是否使用缓存,post方式不能使用缓存if (isPost)conn.setUseCaches(false);/ 设置请求方式,默认为GETconn.setRequestM
26、ethod(requestMethod);/ post方式需要将传递的参数输出到conn对象中if (isPost)DataOutputStream dos = new DataOutputStream(conn.getOutputStream();dos.writeBytes(parameters);dos.flush();dos.close();/ 从HttpURLConnection对象中读取响应的消息/ 执行该语句时才正式发起请求is = conn.getInputStream();catch(UnsupportedEncodingException e)e.printStackTra
27、ce();catch(MalformedURLException e)e.printStackTrace();catch(IOException e)e.printStackTrace();return is;public static void main(String args)String url = “https:/ requestMethod = “POST“;Map params = new HashMap(); params.put(“apiKey“,“your_api_key“); /需要从 获取 params.put(“page“, “); /当前页码(默认1 ) params
28、.put(“pageSize“, “); /该页疾病数量(默认15) params.put(“keyword“, “); /关键字 String result = null;tryInputStream is = httpRequestToStream(url, requestMethod, params);byte b = new byteis.available();is.read(b);result = new String(b);catch(IOException e)e.printStackTrace();if (result != null)JSONObject jsonObjec
29、t = JSONObject.parseObject(result);String status_code = jsonObject.getString(“statusCode“);if (status_code = “000000“)/ 状态码为000000, 说明请求成功System.out.println(“请求成功:“ + jsonObject.getString(“result“);else/ 状态码非000000, 说明请求失败System.out.println(“请求失败:“ + jsonObject.getString(“desc“);else/ 返回内容异常,发送请求失败,
30、以下可根据 业务逻辑自行修改System.out.println(“发送请求失败“);4.获 取疾病列表package net.apishop.www.controller;import java.io.DataOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .MalformedURLException;import .URL;import .URLEnco
31、der;import java.util.HashMap;import java.util.Map;import com.alibaba.fastjson.JSONObject;/* httpUrlConnection访问远程接口工具*/public class Api/* 方法体说明:向远 程接口发起请求,返回字节 流类型结果* param url 接口地址* param requestMethod 请求方式* param params 传递参数 重点:参数值 需要用Base64进行转码* return InputStream 返回结果*/public static InputStream
32、httpRequestToStream(String url, String requestMethod, Map params)InputStream is = null;tryString parameters = “;boolean hasParams = false;/ 将参数集合拼接成特定格式,如name=zhangsanparameters += key + “=“ + value + “hasParams = true;if (hasParams)parameters = parameters.substring(0, parameters.length() - 1);/ 请求方
33、式是否为getboolean isGet = “get“.equalsIgnoreCase(requestMethod);/ 请求方式是否为postboolean isPost = “post“.equalsIgnoreCase(requestMethod);if (isGet)url += “?“ + parameters;URL u = new URL(url);HttpURLConnection conn = (HttpURLConnection) u.openConnection();/ 请求的参数类型(使用restlet框架时,为了兼容框架,必须设置Content-Type为“”空)
34、conn.setRequestProperty(“Content-Type“, “application/octet-stream“);/ conn.setRequestProperty(“Content-Type“, “application/x-www-form-urlencoded“);/ 设置连接超时时间conn.setConnectTimeout(50000);/ 设置读取返回内容超时时间conn.setReadTimeout(50000);/ 设置向HttpURLConnection对象中输出,因为post方式将请求参数放在http正文内,因此需要设置为ture,默认falseif
35、 (isPost)conn.setDoOutput(true);/ 设置从HttpURLConnection对象读入,默认为trueconn.setDoInput(true);/ 设置是否使用缓存,post方式不能使用缓存if (isPost)conn.setUseCaches(false);/ 设置请求方式,默认为GETconn.setRequestMethod(requestMethod);/ post方式需要将传递的参数输出到conn对象中if (isPost)DataOutputStream dos = new DataOutputStream(conn.getOutputStream
36、();dos.writeBytes(parameters);dos.flush();dos.close();/ 从HttpURLConnection对象中读取响应的消息/ 执行该语句时才正式发起请求is = conn.getInputStream();catch(UnsupportedEncodingException e)e.printStackTrace();catch(MalformedURLException e)e.printStackTrace();catch(IOException e)e.printStackTrace();return is;public static voi
37、d main(String args)String url = “https:/ requestMethod = “POST“;Map params = new HashMap(); params.put(“apiKey“,“your_api_key“); /需要从 获取 params.put(“page“, “); /当前页码(默认1 ) params.put(“pageSize“, “); /该页疾病数量(默认15) String result = null;tryInputStream is = httpRequestToStream(url, requestMethod, params
38、);byte b = new byteis.available();is.read(b);result = new String(b);catch(IOException e)e.printStackTrace();if (result != null)JSONObject jsonObject = JSONObject.parseObject(result);String status_code = jsonObject.getString(“statusCode“);if (status_code = “000000“)/ 状态码为000000, 说明请求成功System.out.prin
39、tln(“请求成功:“ + jsonObject.getString(“result“);else/ 状态码非000000, 说明请求失败System.out.println(“请求失败:“ + jsonObject.getString(“desc“);else/ 返回内容异常,发送请求失败,以下可根据 业务逻辑自行修改System.out.println(“发送请求失败“);5.查询疾病信息package net.apishop.www.controller;import java.io.DataOutputStream;import java.io.IOException;import j
40、ava.io.InputStream;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .MalformedURLException;import .URL;import .URLEncoder;import java.util.HashMap;import java.util.Map;import com.alibaba.fastjson.JSONObject;/* httpUrlConnection访问远程接口工具*/public class Api/* 方法体说明:向远 程接口发起请求
41、,返回字节 流类型结果* param url 接口地址* param requestMethod 请求方式* param params 传递参数 重点:参数值 需要用Base64进行转码* return InputStream 返回结果*/public static InputStream httpRequestToStream(String url, String requestMethod, Map params)InputStream is = null;tryString parameters = “;boolean hasParams = false;/ 将参数集合拼接成特定格式,如
42、name=zhangsanparameters += key + “=“ + value + “hasParams = true;if (hasParams)parameters = parameters.substring(0, parameters.length() - 1);/ 请求方式是否为getboolean isGet = “get“.equalsIgnoreCase(requestMethod);/ 请求方式是否为postboolean isPost = “post“.equalsIgnoreCase(requestMethod);if (isGet)url += “?“ + p
43、arameters;URL u = new URL(url);HttpURLConnection conn = (HttpURLConnection) u.openConnection();/ 请求的参数类型(使用restlet框架时,为了兼容框架,必须设置Content-Type为“”空)conn.setRequestProperty(“Content-Type“, “application/octet-stream“);/ conn.setRequestProperty(“Content-Type“, “application/x-www-form-urlencoded“);/ 设置连接超
44、时时间conn.setConnectTimeout(50000);/ 设置读取返回内容超时时间conn.setReadTimeout(50000);/ 设置向HttpURLConnection对象中输出,因为post方式将请求参数放在http正文内,因此需要设置为ture,默认falseif (isPost)conn.setDoOutput(true);/ 设置从HttpURLConnection对象读入,默认为trueconn.setDoInput(true);/ 设置是否使用缓存,post方式不能使用缓存if (isPost)conn.setUseCaches(false);/ 设置请求方
45、式,默认为GETconn.setRequestMethod(requestMethod);/ post方式需要将传递的参数输出到conn对象中if (isPost)DataOutputStream dos = new DataOutputStream(conn.getOutputStream();dos.writeBytes(parameters);dos.flush();dos.close();/ 从HttpURLConnection对象中读取响应的消息/ 执行该语句时才正式发起请求is = conn.getInputStream();catch(UnsupportedEncodingExc
46、eption e)e.printStackTrace();catch(MalformedURLException e)e.printStackTrace();catch(IOException e)e.printStackTrace();return is;public static void main(String args)String url = “https:/ requestMethod = “POST“;Map params = new HashMap(); params.put(“apiKey“,“your_api_key“); /需要从 获取 params.put(“diseaseID“, “); /疾病ID String result = null;tryInputStream is = httpRequestToStream(url, requestMethod, params);byte b = new byteis.available();is.read(b);result = new String(b);catch(IOException