• 技术文章 >Java >Java基础

    java中如何调用对方接口

    王林王林2019-11-15 15:15:29原创2184

    调用对方http接口步骤:

    URL url = new URL(path);

    1、打开和url之间的连接

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();

    2、设置通用的请求属性

    conn.setRequestProperty("accept", "*/*");
    conn.setRequestProperty("connection", "Keep-Alive");
    conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");

    3、设置是否向httpUrlConnection输出,设置是否从httpUrlConnection读入。

    此外发送post请求,最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,post与get的 不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。

    conn.setDoOutput(true);
    conn.setDoInput(true);

    4、断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。

    conn.disconnect();

    代码演示:

    package com.c;
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.PrintWriter;
    import java.net.HttpURLConnection;
    import java.net.URL;
    /**
     * @author 包福平
     * @QQ:1140913970
     */
    public class ToInterface {
        /**
         * 调用对方接口方法
         * @param path 对方或第三方提供的路径
         * @param data 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析
         */
        public static void interfaceUtil(String path,String data) {
            try {
                URL url = new URL(path);
                //打开和url之间的连接
                HttpURLConnection conn = (HttpURLConnection) url.openConnection();
                PrintWriter out = null;
                //请求方式
    //          conn.setRequestMethod("POST");
    //           //设置通用的请求属性
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty("connection", "Keep-Alive");
                conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); 
                //设置是否向httpUrlConnection输出,设置是否从httpUrlConnection读入,此外发送post请求必须设置这两个
                //最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,
                //post与get的 不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
                conn.setDoOutput(true);
                conn.setDoInput(true);
                //获取URLConnection对象对应的输出流
                out = new PrintWriter(conn.getOutputStream());
                //发送请求参数即数据
                out.print(data);
                //缓冲数据
                out.flush();
                //获取URLConnection对象对应的输入流
                InputStream is = conn.getInputStream();
                //构造一个字符流缓存
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                String str = "";
                while ((str = br.readLine()) != null) {
                    System.out.println(str);
                }
                //关闭流
                is.close();
                //断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。
                //固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。
                conn.disconnect();
                System.out.println("完整结束");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        
        public static void main(String[] args) {
            interfaceUtil("http://api.map.baidu.com/telematics/v3/weather?location=嘉兴
            &output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ", "");
    //        interfaceUtil("http://192.168.10.89:8080/eoffice-restful/resources/sys/oadata", "usercode=10012");
    //        interfaceUtil("http://192.168.10.89:8080/eoffice-restful/resources/sys/oaholiday",
    //                    "floor=first&year=2017&month=9&isLeader=N");
        }
    }

    推荐教程:Java教程

    以上就是java中如何调用对方接口的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:java 调用 接口
    上一篇:java中类与方法的区别 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • Java接口是什么• java 接口怎么调用• java抽象类与接口的区别有哪些• java接口是类吗
    1/1

    PHP中文网