一、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-tw/n/304194.html