zoukankan      html  css  js  c++  java
  • java如何调用接口方式一

    java如何调用接口

      其实对于java调用接口进行获取对方服务器的数据在开发中特别常见,然而一些常用的基础的知识总是掌握不牢,让人容易忘记,写下来闲的时候看看,比回想总会好一些。

      总体而言,一些东西知识点一直复制粘贴容易依赖,重要的是会忘记为什么这么写,只有理解到位,或者八九不离十才可以对于随时变化的情况进行分析,如果到家,还可以对别人或自己的进行优化。
      如果你在这篇没有找到你想要的,请点击:java如何调用接口方式二

      而对于一些知识点呢,对其进行整理和归纳,这样容易进行对比加深记忆,对下面代码和总结进行对比着看。

    1. 首先URL restURL = new URL(url);这其中的url就是需要调的目标接口地址,URL类是java.net.*下的类,这个不陌生。
    2. setRequestMethod("POST");请求方式是有两个值进行选择,一个是GET,一个是POST,选择对应的请求方式
    3. setDoOutput(true);setDoInput(true);
      setDoInput()  :  // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认是false;   
      setDoOutput():   // 设置是否从httpUrlConnection读入,默认情况下是true; 
    4. setAllowUserInteraction();allowUserInteraction 如果为 true,则在允许用户交互(例如弹出一个验证对话框)的上下文中对此 URL 进行检查。
    5. 下面代码的query是以  属性=值  传输的,若是多个则是 属性=值&属性=值 这种形式传递的,传递给服务器,让服务器自己去处理。
      如何去生成这种形式的呢?最简单最快的方式在这里 Java将Map拼接成“参数=值&参数=值”
    6. close();创建流进行写入或读取返回值,创建用完后记得关闭流。
    7. 有事需要生成时间戳,可以参考java时间类各种方法及用法,这个里面介绍了各种时间方法获取想要的时间戳

      java如何调用呢?

     

    package com.c;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.io.PrintStream;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.HashMap;
    import java.util.Map;
    
    public class RestUtil {
    
        public String load(String url,String query) throws Exception
        {
            URL restURL = new URL(url);
            /*
             * 此处的urlConnection对象实际上是根据URL的请求协议(此处是http)生成的URLConnection类 的子类HttpURLConnection
             */
            HttpURLConnection conn = (HttpURLConnection) restURL.openConnection();
            //请求方式
            conn.setRequestMethod("POST");
            //设置是否从httpUrlConnection读入,默认情况下是true; httpUrlConnection.setDoInput(true);
            conn.setDoOutput(true);
            //allowUserInteraction 如果为 true,则在允许用户交互(例如弹出一个验证对话框)的上下文中对此 URL 进行检查。
            conn.setAllowUserInteraction(false);
         // 这三行是bug,忘了当初是测试打印日志,忘了屏蔽,感谢 黄邦锁 同学提醒 2019-12-31
            // PrintStream ps = new PrintStream(conn.getOutputStream());
            // ps.print(query);
    
            // ps.close();
    
            BufferedReader bReader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    
            String line,resultStr="";
    
            while(null != (line=bReader.readLine()))
            {
            resultStr +=line;
            }
            System.out.println("3412412---"+resultStr);
            bReader.close();
    
            return resultStr;
    
        }
    public static void main(String []args) {try {

    RestUtil restUtil = new RestUtil();

    String resultString = restUtil.load(
    "http://suggest.taobao.com/sug",
    "code=utf-8&q=商品关键字&callback=cb");

    } catch (Exception e) {

    // TODO: handle exception

    System.out.print(e.getMessage());

    }

    }

    }

     

        如果你在这篇没有找到你想要的,请点击:java如何调用接口方式二

     

  • 相关阅读:
    Vue ui创建vue-cli 3.0项目
    Vue中封装axios
    微信小程序自定义顶部导航
    linux离线安装docker
    解决websocket不能@Autowired注入问题
    springboot 连接 Access数据库
    Flex 布局教程:语法篇
    通过代码来了解下java策略模式,消除if-else
    docker下安装FastDFS
    centos7下安装docker
  • 原文地址:https://www.cnblogs.com/angusbao/p/7677621.html
Copyright © 2011-2022 走看看