java 接口调用

生产中遇到过这种问题,记录下java的接口调用问题。

一种是json方式;

 public static String sendPost(String url, JSONObject obj)throws IOException{
                   OutputStreamWriter out = null;
                   BufferedReader reader = null;
                   String response="";

/*                   String paramStr = "";
                if (null != param) { //遍历参数Map添加到集合中
                    Set<String> keySet = param.keySet();
                    for (String key : keySet) {
                        paramStr = paramStr + key + ":" + param.get(key) + "&";
                    }
                }
                int lastAndIndex = paramStr.lastIndexOf("&");
                if (lastAndIndex != -1) {
                    paramStr = paramStr.substring(0, lastAndIndex);
                }

                System.out.println("地址===" + url);
                System.out.println("入参===" + paramStr);*/

                   try {
                       URL httpUrl = null; //HTTP URL类 用这个类来创建连接
                       //创建URL
                       httpUrl = new URL(url);
                       //建立连接
                       HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
                       conn.setRequestProperty("accept", "*/*");// 设置通用的请求属性
                       conn.setRequestProperty("Charset", "UTF-8");
                       conn.setRequestMethod("POST");
                       conn.setRequestProperty("Content-Type", "application/json");
                       conn.setRequestProperty("connection", "keep-alive");
                       conn.setUseCaches(false);//设置不要缓存
                       conn.setInstanceFollowRedirects(true);
                       conn.setDoOutput(true);
                       conn.setDoInput(true);
                       conn.connect();
                       //POST请求
                       out = new OutputStreamWriter(
                               conn.getOutputStream());
                       out.write(obj.toJSONString());
                       out.flush();
                       //读取响应
                       reader = new BufferedReader(new InputStreamReader(
                               conn.getInputStream()));
                       String lines;
                       while ((lines = reader.readLine()) != null) {
                           lines = new String(lines.getBytes(), "utf-8");
                           response+=lines;
                       }
                       reader.close();
                       // 断开连接
                       conn.disconnect();
                   } catch (Exception e) {
                   System.out.println("发送 POST 请求出现异常!"+e);
                   e.printStackTrace();
                   }
                   //使用finally块来关闭输出流、输入流
                   finally{
                   try{
                       if(out!=null){
                           out.close();
                       }
                       if(reader!=null){
                           reader.close();
                       }
                   }
                   catch(IOException ex){
                       ex.printStackTrace();
                   }
               }

                   return response;
               }

再来一个普通的str 调用接口;

    /**
     * 向指定 URL 发送POST方法的请求
     * @param url 发送请求的 URL
     * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
     * @return 所代表远程资源的响应结果
     */
    public static String sendPostWebReq(String url, Map<String, Object> param,int i) throws Exception {
        String paramStr = "";
        if (null != param) { //遍历参数Map添加到集合中
            Set<String> keySet = param.keySet();
            for (String key : keySet) {
                paramStr = paramStr + key + "=" + param.get(key) + "&";
            }
        }
        int lastAndIndex = paramStr.lastIndexOf("&");
        if (lastAndIndex != -1) {
            paramStr = paramStr.substring(0, lastAndIndex);
        }

        System.out.println("地址===" + url);
        System.out.println("入参===" + paramStr);

        PrintWriter out = null;
        BufferedReader in = null;
        String result = "";
        try {
            URL realUrl = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) realUrl.openConnection();// 打开和URL之间的连接
            conn.setRequestProperty("accept", "*/*");// 设置通用的请求属性
            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("Charset", "UTF-8");
            conn.setDoOutput(true);// 发送POST请求必须设置如下两行
            conn.setDoInput(true);// 获取URLConnection对象对应的输出流
            out = new PrintWriter(new OutputStreamWriter(conn.getOutputStream(), "UTF-8"));// 发送请求参数
            out.print(paramStr);// flush输出流的缓冲
            out.flush();
            in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));// 定义BufferedReader输入流来读取URL的响应
            String line;
            while ((line = in.readLine()) != null) {
                result += line;
            }
        } catch (Exception e) {
            System.out.println("发送 POST 请求出现异常!" + e);
            throw e;
        } finally { // 使用finally块来关闭输出流、输入流
            try {
                if (in != null) in.close();
            } catch (IOException ex) { }
            if (out != null) out.close();
        }
        return result;
    }

原文地址:https://www.cnblogs.com/sunxun/p/9007268.html

时间: 2024-10-18 20:08:49

java 接口调用的相关文章

java接口调用——webservice就是一个RPC而已

很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过socket实现rpc,以及服务的注册和动态上下线.这里先上一篇RPC的实现者一webservice,便于后面理解源码执行过程,框架就是在原理的基础上提供更加便捷的使用而已,协议就是基于TCP或UDP之上,服务者和调用者之间约定消息按照什么样的格式发送以及解析罢了.协议没什么高深莫测的. 原文和作者

java通过JNI接口调用C语言-初级

JNI(java native interface):即java本地调用C的接口. 先看整体运行: 下面是过程: #vim test.java 1 public class test{ 2 3 public native static int add(int a, int b); //指明本地函数 4 static{ 5 System.loadLibrary("add"); //指定动态库 6 }; 7 8 public static void main(String args[]){

java 后台框架 支持APP接口调用 APP后台 手机后台框架java springmvc mybaits mysql oracle html5 后台框架

获取[下载地址]   QQ: 313596790   [免费支持更新]A 代码生成器(开发利器);全部是源码     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势C 安全权限框架shiro ;  Shiro 是一个用

java 后台框架 支持APP接口调用 APP后台

获取[下载地址]   QQ: 313596790   [免费支持更新]支持三大数据库 mysql  oracle  sqlsever   更专业.更强悍.适合不同用户群体[新录针对本系统的视频教程,手把手教开发一个模块,快速掌握本系统]A 代码生成器(开发利器);      增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid

java后台调用HttpURLConnection类模拟浏览器请求(一般用于接口调用)

项目开发中难免遇到外部接口的调用,小生今天初次接触该类,跟着API方法走了一遍,如有不对的地方,还请哆哆指正,拜谢! 1 package com.cplatform.movie.back.test; 2 3 import java.io.BufferedReader; 4 import java.io.DataOutputStream; 5 import java.io.InputStreamReader; 6 import java.net.HttpURLConnection; 7 impor

java 后台框架 支持APP接口调用 APP后台 手机后台框架

开发快报: 页面打印功能,websocket 强制下线功能,玩转websocket技术  [金牌]获取[下载地址]   QQ: 313596790A 代码生成器(开发利器);     增删改查的处理类,service层,mybatis的xml,SQL( mysql   和oracle)脚本,   jsp页面 都生成   就不用写搬砖的代码了,生成的放到项目里,可以直接运行B 阿里巴巴数据库连接池druid;  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都

bugzilla4的xmlrpc接口api调用实现分享: xmlrpc + https + cookies + httpclient +bugzilla + java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能

xmlrpc .  https . cookies . httpclient.bugzilla . java实现加密通信下的xmlrpc接口调用并解决登陆保持会话功能,网上针对bugzilla的实现很少,针对xmlrpc的有但是基本都是http协议的,https下的认证处理比较麻烦,而且会话保持也是基本没有太多共享,所以本人决定结合xmlrpc\bugzilla官方文档,网友文章,结合个人经验总结而成,已经在window2007 64+jdk7位机器上调试通过 手把手教你如何实现: 第一步: 在

C# 调用Java接口

最近工作任务中包含了系统之间数据的互通,当然就考虑系统互相开通接口来实现通信了! 作为.NET的开发者,还没有调用过Java接口的经历,惭愧惭愧! 话不多说,直接进入正题! 调用webservice接口,.NET最快的方法是什么? 1,当然是添加服务引用了! 填上WSDL地址,代码中new一个xxxxClient对象,找到方法,传入参数,得到结果,very easy! 2,用SvcUtil生成代理类,在Visual Studio工具中找到它! 什么?你找不到?那你去别处找找如何添加它吧,嘿嘿!

java springboot调用第三方接口 借助hutoool工具类 爬坑

楼主是个后端小白一枚,之前没接触过后端,只学了java基本语法,还是在学校老师教的,学的很浅,什么ssh.ssm框架都没有学,最近在自学spring boot,看书学也看不是很懂,就在b站上看教学视频,大概看了几个老师讲的,最后选了尚硅谷的视频,老师讲的很好,有点偏向底层源码解析,讲的很细,对我这个新手小白来说也不知道好不好,反正我就是跟着看了.最近接到超哥布置的一个任务,spring boot调用第三方接口,下面就讲讲我这个新手小白是怎么一步一步磕出来结果的,顺便记录一下,免得我后面忘了. 首