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;
	}
	
	
	
	
}

解析后控制台打印:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM