一、URL類介紹和使用
Java通過URL類來表示URL統一資源定位符,URL是用於標識某一互聯網資源的地址,URL類提供了實現URL所需的各種方法。使用Java發送HTTP請求,需要對URL進行實例化,並對URL對象調用openStream()方法獲取相應的輸入流。下面是URL類的代碼示例:
import java.net.URL;
import java.io.IOException;
import java.io.InputStream;
public class URLtest{
public static void main(String[] args) throws Exception {
URL url = new URL("https://www.baidu.com/");
InputStream is = url.openStream();
int data = is.read();
while(data != -1){
System.out.print((char)data);
data = is.read();
}
is.close();
}
}
在這個例子中,我們使用URL類創建一個表示百度網站的URL對象,在讀取該URL對象的內容時,我們使用了InputStream類來獲得該URL的輸入流,並且使用while循環讀取該輸入流中的數據,最後使用InputStream.close()方法關閉該輸入流。
二、URLConnection介紹和使用
Java中的URLConnection類允許我們通過HTTP發送請求和讀取響應。使用URLConnection發送HTTP請求,需要對URLConnection進行實例化並調用setRequestMethod()方法設置請求方法,然後調用getInputStream()方法獲取相應的輸入流。下面是URLConnection類的代碼示例:
import java.net.*;
import java.io.*;
public class URLConnectionTest {
public static void main(String[] args) throws Exception {
URL url = new URL("https://www.baidu.com/");
URLConnection urlConnection = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(urlConnection.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null){
System.out.println(inputLine);
}
in.close();
}
}
在這個例子中,我們使用URLConnection類創建一個連接到百度網站的對象並將其轉換為BufferedReader以便讀取響應,在讀取該URL對象的內容時,我們使用了while循環來讀取該輸入流中的數據,最後使用BufferedReader.close()方法關閉該輸入流。
三、Apache HttpClient第三方庫使用
Apache HttpClient是Apache基金會的一個子項目,它的目標是提供一個與HTTP協議相關的工具集,Apache HttpClient比Java原生的URLConnection類更加方便、靈活和易用。以下是Apache HttpClient的代碼示例:
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ApacheHttpClientTest {
public static void main(String[] args) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet request = new HttpGet("https://www.baidu.com/");
CloseableHttpResponse response = httpClient.execute(request);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = "";
while ((line = rd.readLine()) != null){
System.out.println(line);
}
response.close();
httpClient.close();
}
}
在這個例子中,我們使用Apache HttpClient類創建一個連接到百度網站的對象,最後使用execute()方法發送HTTP請求並獲取響應。與此同時,我們使用了BufferedReader類從響應中讀取數據。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/304194.html
微信掃一掃
支付寶掃一掃