JAVA通过HTTP方式获取数据

测试获取免费天气数据接口:http://www.weather.com.cn/data/sk/101190408.html

URL数据如下图:

代码部分:

package https;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class WeatherAPI {

	public static void main(String[] args) throws Exception {
		// WeatherAPI.json("北京");
		System.out.println(getHttpRequestData("http://www.weather.com.cn/data/sk/101190408.html"));
	}
  
	public static String getHttpRequestData(String urlPath) {

		// 首先抓取异常并处理
		String returnString = "1";
		try{
			// 代码实现以GET请求方式为主,POST跳过
			/** 1 GET方式请求数据 start*/
			
			// 1  创建URL对象,接收用户传递访问地址对象链接
			URL url = new URL(urlPath);
			
			// 2 打开用户传递URL参数地址
			HttpURLConnection connect = (HttpURLConnection) url.openConnection();
			
			// 3 设置HTTP请求的一些参数信息
			connect.setRequestMethod("GET"); // 参数必须大写
			connect.connect();
			
			// 4 获取URL请求到的数据,并创建数据流接收
			InputStream isString = connect.getInputStream();
			
			// 5 构建一个字符流缓冲对象,承载URL读取到的数据
			BufferedReader isRead = new BufferedReader(new InputStreamReader(isString));
			 
			// 6 输出打印获取到的文件流
			String str = "";
			while ((str = isRead.readLine()) != null) {
				str = new String(str.getBytes(),"UTF-8"); //解决中文乱码问题
//				System.out.println("文件解析打印:");
//				System.out.println(str);
				returnString = str;
			}
			
			// 7 关闭流
			isString.close();
			connect.disconnect();
			
			// 8 JSON转List对象
			// do somthings
			
			
		}catch(Exception e){
			e.printStackTrace();
		}
		
		return returnString;
	}
	
	
	
	
}

解析后控制台打印:

 

posted @ 2019-06-20 16:12  塞壬的港湾  阅读(6570)  评论(0编辑  收藏  举报