其实对于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接口调用怎样实现的内容,希望对大家有帮助。
声明:本文部分素材转载自互联网,如有侵权立即删除 。
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别
丞旭猿论坛
暂无评论内容