java后台创建url连接,获取接口数据
版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/78982905 简介 1. 在实践中,当项目不断进行新功能开发的时候,我们就不可能将所有的方法、功能点全部都写在同一个项目里面,这样也不符合脱耦的趋势; 2. 那么,在项目中,我们既要增加新的功能点,又要最大限度地降低耦合度,我们就要不断地对接口进行深入发掘; 3. 像阿里的分布式服务框架dubbo,也是一种基于接口开发的服务框架,它不仅能松耦合,而且功能点都是通过不断增加接口来不断增加; 4. 本篇博客不讲述接口如何开发,而是简单地介绍,如何通过java创建url连接,获取接口返回来的json数据; 项目实践 /** * 获取接口数据,返回json格式字符串,方法1 * @param url 接口路径 * @param params 传递参数,自定义 * @param key 传递参数标识,自定义 * @return */ public String getData1(String url,String params,String key){ String rs = null; CloseableHttpClient httpClient = HttpClient.createDefault(); try{ //拼接参数,转义参数 String connUrl = url+"?params="+URLEncoder.encode(params,HTTP.UTF-8)+"&key="+key; //创建连接 HttpGet get = new HttpGet(connUrl); //获取以及解析数据 CloseableHttpResponse resp = httpClient.execute(get); rs = EntityUtils.toString(resp.getEntity(),HTTP.UTF-8); }catch(IOException e){ System.out.println("出错了") } return rs; } /** * 获取接口数据,返回json格式字符串,方法2 * @param url 接口路径 * @param params 传递参数,自定义 * @param key 传递参数标识,自定义 * @return */ public String getData2(String url,String params,String key){ HttpURLConnection conn = null; BufferedReader reader = null; String rs = null; try { //拼接参数,转义参数 String connUrl = url+"?params="+URLEncoder.encode(params,HTTP.UTF-8)+"&key="+key; //创建连接 URL url = new URL(connUrl); conn = (HttpURLConnection) url.openConnection(); conn.setUseCaches(false); conn.setConnectTimeout(30000); conn.setReadTimeout(30000); conn.setInstanceFollowRedirects(false); conn.connect(); //获取并解析数据 InputStream is = conn.getInputStream(); reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); StringBuffer sb = new StringBuffer(); String strRead = null; while ((strRead = reader.readLine()) != null) { sb.append(strRead); } rs = sb.toString(); } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null) { reader.close(); } if (conn != null) { conn.disconnect(); } } return rs; } 总结 1. 上面提供了两种方法来创建连接,获取接口数据,可自选比较合适的方法; 2. 返回的rs都是json格式的字符串,可直接使用JSONObject object = JSONObject.fromObject(rs)来转换成json对象,然后进行多层次的解析; 3. 实践是检验认识真理性的唯一标准,试一试就知道好不好用了;