java如何调用第三方接口

java如何调用第三方接口最近在做一个项目,因一些机制问题,需要我用java代码调用第三方接口。因其接口使用的是@RequestBody注入访问对象的,@RequestBody接受收的是一个json格式的字符串,一定是一个字符串。类似于:{“pageNumber”:1,“pageSize”:10}这种json字符串访问方式。要想在java后端代码中访问第三方接口,首先引入maven包。<dependency><groupId>org.codehaus.jackson

大家好,又见面了,我是你们的朋友全栈君。

最近在做一个项目,因一些机制问题,需要我用java代码调用第三方接口。因其接口使用的是@RequestBody注入访问对象的,@RequestBody接受收的是一个json格式的字符串,一定是一个字符串。类似于:

{

“pageNumber”:1,
“pageSize”:10
}

这种json字符串访问方式。

要想在java后端代码中访问第三方接口,首先引入maven包。

<dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.9</version>
</dependency>

POST请求封装的工具方法:

    public static String HttpURLConnection(String url, JSONObject data) { 
   
        StringBuffer sb = new StringBuffer();
        try { 
   
            URL realUrl = new URL(url);
            //将realUrl以open方法返回的urlConnection 连接强转为HttpURLConnection连接 
            HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();// 此时cnnection只是为一个连接对象,待连接中
            //设置连接输出流为true,默认false
            connection.setDoOutput(true);
            //设置连接输入流为true
            connection.setDoInput(true);
            //设置请求方式为post
            connection.setRequestMethod("POST");
            //post请求缓存设为false
            connection.setUseCaches(false);
            //设置该HttpURLConnection实例是否自动执行重定向
            connection.setInstanceFollowRedirects(true);
            //设置请求头里面的各个属性
            connection.setRequestProperty("Content-Type", "application/json;charset=utf-8");
            //建立连接 
            connection.connect();
            //创建输入输出流,用于往连接里面输出携带的参数
            DataOutputStream dataout = new DataOutputStream(connection.getOutputStream());
            String query = data.toString();
            //将参数输出到连接
            dataout.write(query.getBytes("UTF-8"));
            // 输出完成后刷新流
            dataout.flush();
            //关闭流
            dataout.close(); 
            BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
            String lines;
            while ((lines = reader.readLine()) != null) { 
   
                lines = new String(lines.getBytes(), "utf-8");
                sb.append(lines);
            }
            reader.close();
            connection.disconnect();
        } catch (Exception e) { 
   
            e.printStackTrace();
        }
        return sb.toString();
    }

在服务层中调用方法例子:

//输入的Json参数
 JSONObject jsonObject = new JSONObject();
//添加访问参数 
     jsonObject.append("pageNumber", 1);
     jsonObject.append("pageSize",10);
//输入第三方url
 String packStr=HttpURLConnection("http://**:8080/login/info", jsonObject);

通过以上操作即可返回访问的接口参数,通过类型转换即可使用。
此方法也是我在多次验证保证完全可行的一种方法,如果直接用params参数访问url我会在第二篇博客里面进行解答。刚进入社区,希望各位大神们多多帮助,共同进步。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/139931.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Java文件是如何编译成Dex文件的?如何执行Dex文件?「建议收藏」

    Java文件是如何编译成Dex文件的?如何执行Dex文件?「建议收藏」本文将介绍Dex文件,以及Java文件如何生成Dex文件的?最后介绍Dex文件通过什么方式来执行?

    2022年6月27日
    41
  • AppFabric_性能监视器汉化版

    AppFabric_性能监视器汉化版最近项目要上线了,appfabric这块是我比较担心的,因为以前项目的.netframework版本是3.5,而用了appfabric后必须升级为.net4.0.另appfabric究竟如何,还是有些担心  我个人最近要做的是多模拟安装了几次appfabric,准备好了需要用到的命令.  这两天把性能监视这块看看了,汇集了些资料,共享下了: 地址为:http://msdn.mic

    2022年10月17日
    1
  • java反编译工具Java Decompiler

    java反编译工具Java Decompiler我想看一下jsp编译后生成的java文件,用记事本这些看的话要不就乱码,要不就看起来很乱,可读性很低百度了一下java反编译工具JavaDecompiler:这个工具不仅能反编译.class文件,将.class文件转换为可读的.java文件,而且还可以对整个jar包进行反编译。该工具不仅有自己的图形化界面工具JD-GUI,而且还有eclipse和IntelliJIDEA的…

    2022年7月8日
    23
  • pycharm安装CV2,tensorflow[通俗易懂]

    pycharm安装CV2,tensorflow[通俗易懂]在pycharm中导入importcv2时不能正常使用,需要安装cv2库,但是我们在pycharm中安装库时没有找到CV2,就需要安装opencv库,我采用的是以下的方式:1、首先看下pycharm中的环境,我现在用的环境是anaconda下的PyCharmproject2、在菜单栏中打开anacondaprompt(anaconda3)3、刚开始进入时环境是4、切换环境为pycharm中环境activatePyCharmproject5、已经下好了opencv的whl文件,我下到了3

    2022年8月26日
    9
  • RabbitMQ 原理图和名词理解(二)[通俗易懂]

    RabbitMQ 原理图和名词理解(二)[通俗易懂]一、RabbitMQ简介RabbitMQ是基于AMQP实现的一个开源消息组件,主要用于在分布式系统中存储转发消息,由因高性能、高可用以及高扩展而出名的Erlang写成。其中,AMQP(AdvancedMessageQueuingProtocol,即高级消息队列协议),是一个异步消息传递所使用的应用层协议规范,为面向消息的中间件设计。RabbiMQ是EDA事件驱动架构的核心,也是CQR…

    2022年6月22日
    22
  • [电池]Android 9.0 电池未充电与充电字符串提示信息[通俗易懂]

    [电池]Android 9.0 电池未充电与充电字符串提示信息[通俗易懂]1.电池电量提醒1.1未充电提醒若没有预估时间,则提示显示电池百分比若预估时间小于7分钟,则提示手机可能即将关机若预估时间小于15分钟,则提示剩余电池续航时间不到15分钟若15分钟&lt;预估时间&lt;1天,则提示估计大约还能用到xxh,xxmin,xxsec若预估时间大于1天,则提示大约还可使用1days,xhr,xmin,xsec若预估时间大于2…

    2025年8月4日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号