2025年天气预报接口java(天气预报接口调用)

天气预报接口java(天气预报接口调用)package juheAPI import java io BufferedRead import java io BufferedWrit import java io InputStream import java io InputStreamR import java io OutputStream import java io OutputStream import java net HttpURLConne import



package juheAPI;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
/**
 * 网络访问工具类
 * @author silk
 *
 */
public class PureNetUtil {
 /**
  * get方法直接调用post方法
  * @param url 网络地址
  * @return 返回网络数据
  */
 public static String get(String url){
  return post(url,null);
 }
 /**
  * 设定post方法获取网络资源,如果参数为null,实际上设定为get方法
  * @param url 网络地址
  * @param param 请求参数键值对
  * @return 返回读取数据
  */
 public static String post(String url,Map param){
  HttpURLConnection conn=null;
  try {
   URL u=new URL(url);
   conn=(HttpURLConnection) u.openConnection();
   StringBuffer sb=null;
   if(param!=null){//如果请求参数不为空
    sb=new StringBuffer();
    /*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(new OutputStreamWriter(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=new StringBuffer();
   //获取连接状态码
   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(new InputStreamReader(in));
    String str=null;
    sb=new StringBuffer();
    //从输入流中读取数据
    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;
 }
 
}
编程小号
上一篇 2025-07-17 22:30
下一篇 2026-03-14 12:46

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/53771.html