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