java如何获取网页
使用 Java 获取网页内容
使用 HttpURLConnection 获取网页
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpURLConnectionExample {
public static void main(String[] args) {
try {
URL url = new URL("https://example.com");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
System.out.println("Content: " + content.toString());
connection.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用 HttpClient(Java 11+)获取网页
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class HttpClientExample {
public static void main(String[] args) {
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com"))
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
}
}
使用第三方库 Jsoup 获取并解析网页
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
public class JsoupExample {
public static void main(String[] args) {
try {
Document doc = Jsoup.connect("https://example.com").get();
String title = doc.title();
System.out.println("Title: " + title);
System.out.println("Content: " + doc.body().text());
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用 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 org.apache.http.util.EntityUtils;
public class ApacheHttpClientExample {
public static void main(String[] args) {
try (CloseableHttpClient client = HttpClients.createDefault()) {
HttpGet request = new HttpGet("https://example.com");
CloseableHttpResponse response = client.execute(request);
String content = EntityUtils.toString(response.getEntity());
System.out.println("Content: " + content);
} catch (Exception e) {
e.printStackTrace();
}
}
}
注意事项
- 使用
HttpURLConnection 时需处理异常和关闭连接。
HttpClient(Java 11+)提供异步支持,适合现代应用。
Jsoup 适合解析 HTML 内容,提供方便的 DOM 操作。
Apache HttpClient 功能强大,适合复杂 HTTP 请求场景。

