java調用http工具類示例代碼

java調用http工具類,主要是使用java自帶的java.net.URL來執行調用

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

/**
 * @author loaDForK
 * @since 2019/4/8
 * http請求獲取類,使用java自帶的net包實現get、post兩種
 */

public class DemoImpHttp {
	
	/**
	 * @author loaDForK
	 * @since 2019/4/8
	 * http請求工具類,使用java自帶的net包實現get請求
	 */
	public static void doGetConn() throws IOException {
		String path = "https://getman.cn/echo";
		URL url = new URL(path);
		//openConnection返回值是URLConnection類型,故強制聲明爲HttpURLConnection類型、方法定義拋出問題IOException
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();//打開connection
		conn.setRequestMethod("GET");//請求方式,參數要求大寫
		conn.setConnectTimeout(5000);//設置超時
		conn.setDoInput(true);//打開輸入流,默認是true,參數是布爾值
		conn.setDoOutput(true);//打開輸出流,默認是false,參數是布爾值
		conn.connect();//發起鏈接
		
		//getResponseCode的調用標誌着調用結束,如果在其後調用OutputStream對象,會報錯Cannot write output after reading input.
		int code = conn.getResponseCode();//獲取連接後的返回碼,200、404等
		InputStream is = conn.getInputStream();
		String name = path.substring(path.lastIndexOf("/")+1);
		System.out.println("name_"+name);
		FileOutputStream fos = new FileOutputStream("D:\\testFile\\"+name+"_Get.txt");
		byte[] butter = new byte[1024];
		int len = 0 ;
		
		while(is.read(butter)!=-1){
			fos.write(butter,0,is.read(butter));
		}
		
	}
	
	/**
	 * @author loaDForK
	 * @since 2019/4/8
	 * http請求工具類,使用java自帶的net包實現post請求
	 */
	public static void doPostConn() throws IOException {
		String path = "https://getman.cn/echo";
		URL url = new URL(path);
		//openConnection返回值是URLConnection類型,故強制聲明爲HttpURLConnection類型、方法定義拋出問題IOException
		HttpURLConnection conn = (HttpURLConnection) url.openConnection();//打開connection
		conn.setRequestMethod("POST");//請求方式,參數要求大寫
		conn.setConnectTimeout(5000);//設置超時
		conn.setDoInput(true);//打開輸入流,默認是true,參數是布爾值
		conn.setDoOutput(true);//打開輸出流,默認是false,參數是布爾值
		conn.connect();//發起鏈接
		
		OutputStream os = conn.getOutputStream();
        os.write("platform=2&appVersion=1.7.0&osType=2".getBytes());
        os.flush();
		//getResponseCode的調用標誌着調用結束,如果在其後調用OutputStream對象,會報錯Cannot write output after reading input.
		int code = conn.getResponseCode();//獲取連接後的返回碼,200、404等
		
        InputStream is = conn.getInputStream();
		String name = path.substring(path.lastIndexOf("/")+1);
		System.out.println("name_"+name);
		FileOutputStream fos = new FileOutputStream("D:\\testFile\\"+name+"_Post1.txt");
		byte[] butter = new byte[1024];
		int len = 0 ;
		
		while(is.read(butter)!=-1){
			fos.write(butter,0,is.read(butter));
		}
	}
}

測試調用語句:

public class TestMain {
	public static void main(String[] args) throws IOException {
		DemoImpHttp.doGetConn();
		DemoImpHttp.doPostConn();
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章