java后台创建url连接,获取接口数据

简介: 版权声明:本文为博主原创文章,如需转载,请标明出处。 https://blog.csdn.net/alan_liuyue/article/details/78982905 简介  1.
版权声明:本文为博主原创文章,如需转载,请标明出处。 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. 实践是检验认识真理性的唯一标准,试一试就知道好不好用了;

相关文章
|
17天前
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
|
8天前
|
Java
在Java中,接口之间可以继承吗?
接口继承是一种重要的机制,它允许一个接口从另一个或多个接口继承方法和常量。
33 1
|
18天前
|
Java
java线程接口
Thread的构造方法创建对象的时候传入了Runnable接口的对象 ,Runnable接口对象重写run方法相当于指定线程任务,创建线程的时候绑定了该线程对象要干的任务。 Runnable的对象称之为:线程任务对象 不是线程对象 必须要交给Thread线程对象。 通过Thread的构造方法, 就可以把任务对象Runnable,绑定到Thread对象中, 将来执行start方法,就会自动执行Runable实现类对象中的run里面的内容。
35 1
|
24天前
|
Java 开发者
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
在Java多线程编程的世界里,Lock接口正逐渐成为高手们的首选,取代了传统的synchronized关键字
44 4
|
7月前
uView queryParams 对象转URL参数
uView queryParams 对象转URL参数
68 0
|
3月前
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
56 0
|
4月前
|
开发框架 前端开发 .NET
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
|
4月前
|
Java
JAVA 获取 URL 指定参数的值
JAVA 获取 URL 指定参数的值
48 0
|
5月前
|
JavaScript 前端开发 数据格式
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
269 0
|
5月前
|
JavaScript
js 获取并解析 url 中参数的三种方法
js 获取并解析 url 中参数的三种方法
489 0