1. 程式人生 > >Java模擬httpGet請求並獲取返回的資料

Java模擬httpGet請求並獲取返回的資料

1.程式碼例項如下:

public class HttpgetUtils {

	public static String sendGETRequest(String path, Map params, String ecoding) throws Exception{  
		//拼接GET引數條件
	    StringBuilder url = new StringBuilder(path);  
	    url.append("?");  
	    for(Map.Entry entry : params.entrySet()){  
	        url.append(entry.getKey()).append("=");  
	        url.append(URLEncoder.encode(entry.getValue(), ecoding));  
	        url.append("&");  
	    }  
	    url.deleteCharAt(url.length() - 1);
	    //發起請求
	    HttpURLConnection conn = (HttpURLConnection)new URL(url.toString()).openConnection();  
	    conn.setConnectTimeout(5000);  
	    conn.setRequestMethod("GET");
	    if(conn.getResponseCode() == 200){
	    	//獲取請求返回來的結果-【這是返回Str的情況Json的基本同理,把返回來的json字串轉換成Json物件就行了】
			StringBuffer buffer = new StringBuffer();
			InputStream inputStream = conn.getInputStream();  
			InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");  
			BufferedReader bufferedReader = new BufferedReader(inputStreamReader);  	  
			String str = null;  
			while ((str = bufferedReader.readLine()) != null) {  
				buffer.append(str);  
			}  
			bufferedReader.close();  
			inputStreamReader.close();  
			// 釋放資源  
			inputStream.close();  
			inputStream = null;  
			conn.disconnect();
			return buffer.toString(); 
	    }  
	    return null;  
	}
	
}
2.測試例項:
public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String path ="XXXXXX"; 
		Map map = new HashMap() {{ 
	        put( "FileName" , "monitor" );
	        put( "wantedOne" , "2017-10-30 14:47" );
	        put( "wantedTwo" , "192.168.30.244" );
		}}; 
		String ecoding ="UTF-8";
		try {
			String Str =HttpgetUtils.sendGETRequest(path,map,ecoding);
			System.out.println(Str);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}
3.結果: