预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JAVA全国天气预报接口调用示例 代码描述:根据文档中注明的需求参数,调用接口返回数据 代码平台:聚合数据 step1:选择本文所示例的接口"全国天气预报接口"url:http://www.juhe.cn/docs/api/id/39/aid/87 step2:每个接口都需要传入一个参数key,相当于用户的令牌,所以第一步你需要申请一个key step3:看文档!!!学过java的同学们都知道,当我们对一个类或者方法不明白其意图和思想时,我们可以去查看文档,这里也不例外,而且对于英文不是特别好的同学来说很幸运的是,聚合网站上的文档都是中文版本的,比起阅读java源码里的英文文档应该轻松很多. 全国天气预报接口下面有六个子接口,打开第一个接口链接,看文档发现需要传入一个城市名或者城市ID参数,这个参数我们可以通过第六个子接口获取(接口之间参数的调用类似于java中方法之间的调用),即支持城市列表获取.所以示例中我们先调用这个接口.调用接口涉及到请求网络资源的问题,这里我封装了一个工具类,包含GET和POST两种方法 step4:上代码 Demo1:网络访问工具类(封装get和post方法) packagejuheAPI; importjava.io.BufferedReader; importjava.io.BufferedWriter; importjava.io.InputStream; importjava.io.InputStreamReader; importjava.io.OutputStream; importjava.io.OutputStreamWriter; importjava.net.HttpURLConnection; importjava.net.URL; importjava.util.Map; /** *网络访问工具类 *@authorsilk * */ publicclassPureNetUtil{ /** *get方法直接调用post方法 *@paramurl网络地址 *@return返回网络数据 */ publicstaticStringget(Stringurl){ returnpost(url,null); } /** *设定post方法获取网络资源,如果参数为null,实际上设定为get方法 *@paramurl网络地址 *@paramparam请求参数键值对 *@return返回读取数据 */ publicstaticStringpost(Stringurl,Mapparam){ HttpURLConnectionconn=null; try{ URLu=newURL(url); conn=(HttpURLConnection)u.openConnection(); StringBuffersb=null; if(param!=null){//如果请求参数不为空 sb=newStringBuffer(); /*AURLconnectioncanbeusedforinputand/oroutput.SettheDoOutput *flagtotrueifyouintendtousetheURLconnectionforoutput, *falseifnot.Thedefaultisfalse.*/ //默认为false,post方法需要写入参数,设定true conn.setDoOutput(true); //设定post方法,默认get conn.setRequestMethod("POST"); //获得输出流 OutputStreamout=conn.getOutputStream(); //对输出流封装成高级输出流 BufferedWriterwriter=newBufferedWriter(newOutputStreamWriter(out)); //将参数封装成键值对的形式 for(Map.Entrys:param.entrySet()){ sb.append(s.getKey()).append("=").append(s.getValue()).append("&"); } //将参数通过输出流写入 writer.write(sb.deleteCharAt(sb.toString().length()-1).toString()); writer.close();//一定要关闭,不然可能出现参数不全的错误 sb=null; } conn.connect();//建立连接 sb=newStringBuffer(); //获取连接状态码 intrecode=conn.getResponseCode(); BufferedReaderreader=null; if(reco