当前位置:网站首页 > Java基础 > 正文

java天气预报接口(java国家气象局天气预报接口)

package com.tobacco.project.mvc.common;

import com.fasterxml.jackson.databind.JsonNode;

import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.Reader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.net.URLEncoder;

import java.nio.charset.StandardCharsets;

import java.util.zip.GZIPInputStream;

/

* @date : 2023/12/15 14:05

*/

public class WeatherData {

//高德地图开发服务 https://console.amap.com/dev/index

public static String getWeatherByGaoDe(){

String targetUrl="https://restapi.amap.com/v3/weather/weatherInfo";

String city = "查询地址编码";

String key = "网站注册,使用自己的key";

try {

// 编码参数值

String encodedParam1 = URLEncoder.encode(city, StandardCharsets.UTF_8.toString());

String encodedParam2 = URLEncoder.encode(key, StandardCharsets.UTF_8.toString());

// 构建带有参数的URL

String queryString = "?city=" + encodedParam1 + "&key=" + encodedParam2;

URL url = new URL(targetUrl + queryString);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

connection.setRequestMethod("GET");

connection.setDoOutput(true);

connection.setDoInput(true);

connection.connect();

// 检查响应编码是否为Gzip

String encoding = connection.getContentEncoding();

InputStream inputStream = connection.getInputStream();

Reader reader;

if ("gzip".equalsIgnoreCase(encoding)) {

// 解压缩Gzip响应

inputStream = new GZIPInputStream(inputStream);

reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));

} else {

reader = new BufferedReader(new InputStreamReader(inputStream));

}

// 读取响应数据并解析JSON

StringBuilder content = new StringBuilder();

char[] buffer = new char[1024];

int bytesRead;

while ((bytesRead = reader.read(buffer)) != -1) {

content.append(buffer, 0, bytesRead);

}

reader.close();

// 解析JSON数据

ObjectMapper objectMapper = new ObjectMapper();

JsonNode rootNode = objectMapper.readTree(content.toString());

// 在这里可以对JSON数据进行处理或访问特定字段

return rootNode.toString();

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

//和风天气开发服务 https://dev.qweather.com/

public static String getWeatherByHeFeng() {

String targetUrl = "https://devapi.qweather.com/v7/weather/now";

String location = "查询地址编码";

String key = "网站注册,使用自己的key";

try {

// 编码参数值

String encodedParam1 = URLEncoder.encode(location, StandardCharsets.UTF_8.toString());

String encodedParam2 = URLEncoder.encode(key, StandardCharsets.UTF_8.toString());

// 构建带有参数的URL

String queryString = "?location=" + encodedParam1 + "&key=" + encodedParam2;

URL url = new URL(targetUrl + queryString);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();

connection.setRequestMethod("GET");

connection.setDoOutput(true);

connection.setDoInput(true);

connection.connect();

// 检查响应编码是否为Gzip

String encoding = connection.getContentEncoding();

InputStream inputStream = connection.getInputStream();

Reader reader;

if ("gzip".equalsIgnoreCase(encoding)) {

// 解压缩Gzip响应

inputStream = new GZIPInputStream(inputStream);

reader = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8));

} else {

reader = new BufferedReader(new InputStreamReader(inputStream));

}

// 读取响应数据并解析JSON

StringBuilder content = new StringBuilder();

char[] buffer = new char[1024];

int bytesRead;

while ((bytesRead = reader.read(buffer)) != -1) {

content.append(buffer, 0, bytesRead);

}

reader.close();

// 解析JSON数据

ObjectMapper objectMapper = new ObjectMapper();

JsonNode rootNode = objectMapper.readTree(content.toString());

// 在这里可以对JSON数据进行处理或访问特定字段

return rootNode.toString();

} catch (Exception e) {

e.printStackTrace();

}

return null;

}

到此这篇java天气预报接口(java国家气象局天气预报接口)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • java字符串转字符集(java字符串转char)2025-07-29 20:09:08
  • java面试题以及答案(java面试题加答案)2025-07-29 20:09:08
  • map转jsonobject对象 java(java把map转换成json)2025-07-29 20:09:08
  • jvm内存模型 知乎(javajvm内存模型)2025-07-29 20:09:08
  • java的教学视频教程下载(java教程视频免费下载)2025-07-29 20:09:08
  • java天气预报接口(java天气预报程序)2025-07-29 20:09:08
  • 华为java面试题(华为java面试题目)2025-07-29 20:09:08
  • java 自学网站(java自学网公众号)2025-07-29 20:09:08
  • java面试基础知识点(java面试基础知识点总结)2025-07-29 20:09:08
  • 华为java面试题(华为odjava面试题)2025-07-29 20:09:08
  • 全屏图片