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如何调用接口方式二

     

  • 相关阅读:
    POJ 2018 二分
    873. Length of Longest Fibonacci Subsequence
    847. Shortest Path Visiting All Nodes
    838. Push Dominoes
    813. Largest Sum of Averages
    801. Minimum Swaps To Make Sequences Increasing
    790. Domino and Tromino Tiling
    764. Largest Plus Sign
    Weekly Contest 128
    746. Min Cost Climbing Stairs
  • 原文地址:https://www.cnblogs.com/angusbao/p/7677621.html
Copyright © 2011-2022 走看看