3.1.1知識概述
使用原生API發送Get請求
package cn.itcast.spider;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
/**
使用JDK的api進行get請求
1.在使用httpurlconnection時,默認就是get請求。如何改成post請求?
2.http協議中,可以指定header,想添加user-agent
*/
public class BasicHttpGet {
public static void main(String[] args) throws Exception {
//1.指定一個url
String domain = "http://www.itcast.cn";
//2.發起一個請求
URL url = new URL(domain);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//添加請求方式
conn.setRequestMethod("GET");
//添加請求頭------如果編寫爬蟲,真實瀏覽器發送的header都拷貝
conn.setRequestProperty("Accept", "text/html");
/**
Accept:text/html
**/
//3.獲取返回值
InputStream inputStream = conn.getInputStream();
//3.1 將輸入流轉換字符串
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
//3.2 一次讀取bufferReader的數據
String line =null;
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
}
//4.關閉流
inputStream.close();
}
}
Java網絡請求原生API-Post請求
package cn.itcast.spider;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
使用JDK的api進行POST請求
1.在使用httpurlconnection時,默認就是get請求。如何改成post請求?
第一步:設置請求方法 setRequestMethod("POST")
第二步:設置doOutPut(true)
2.http協議中,可以指定header,想添加user-agent
*/
public class BasicHttpGet {
public static void main(String[] args) throws Exception {
//1.指定一個url
String domain = "http://www.itcast.cn";
//2.發起一個請求
URL url = new URL(domain);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//2.1 添加請求方式
conn.setRequestMethod("POST");
//2.2 添加請求頭------如果編寫爬蟲,真實瀏覽器發送的header都拷貝
conn.setRequestProperty("Accept", "text/html");
/**
Accept:text/html
**/
//2.3 發送一些數據
conn.setDoOutput(true);
OutputStream outputStream = conn.getOutputStream();
// 編寫什麼樣格式的數據? username=zhangsan&passwd=123
outputStream.write("username=zhangsan&passwd=123".getBytes());
outputStream.flush();
outputStream.close();
//3.獲取返回值
InputStream inputStream = conn.getInputStream();
//3.1 將輸入流轉換字符串
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
//3.2 一次讀取bufferReader的數據
String line =null;
while((line=bufferedReader.readLine())!=null){
System.out.println(line);
}
//4.關閉流
inputStream.close();
}
}