java天气_基于JAVA的全国天气预报接口调用示例

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

**/

public classPureNetUtil {/*** get方法直接调用post方法

*@paramurl 网络地址

*@return返回网络数据*/

public staticString get(String url){return post(url,null);

}/*** 设定post方法获取网络资源,如果参数为null,实际上设定为get方法

*@paramurl 网络地址

*@paramparam 请求参数键值对

*@return返回读取数据*/

public staticString post(String url,Map param){

HttpURLConnection conn=null;try{

URL u=newURL(url);

conn=(HttpURLConnection) u.openConnection();

StringBuffer sb=null;if(param!=null){//如果请求参数不为空

sb=newStringBuffer();/*A URL connection can be used for input and/or output. Set the DoOutput

* flag to true if you intend to use the URL connection for output,

* false if not. The default is false.*/

//默认为false,post方法需要写入参数,设定true

conn.setDoOutput(true);//设定post方法,默认get

conn.setRequestMethod("POST");//获得输出流

OutputStream out=conn.getOutputStream();//对输出流封装成高级输出流

BufferedWriter writer=new BufferedWriter(newOutputStreamWriter(out));//将参数封装成键值对的形式

for(Map.Entry s: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();//获取连接状态码

int recode=conn.getResponseCode();

BufferedReader reader=null;if(recode==200){//Returns an input stream that reads from this open connection//从连接中获取输入流

InputStream in=conn.getInputStream();//对输入流进行封装

reader=new BufferedReader(newInputStreamReader(in));

String str=null;

sb=newStringBuffer();//从输入流中读取数据

while((str=reader.readLine())!=null){

sb.append(str).append(System.getProperty("line.separator"));

}//关闭输入流

reader.close();if (sb.toString().length() == 0) {return null;

}return sb.toString().substring(0,

sb.toString().length()- System.getProperty("line.separator").length());

}

}catch(Exception e) {

e.printStackTrace();return null;

}finally{if(conn!=null)//关闭连接

conn.disconnect();

}return null;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值