以下是一个使用 Java 发送 HTTP 请求的示例代码:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class HttpExample {
public static void main(String[] args) throws Exception {
// 创建 URL 对象
URL url = new URL("http://example.com");
// 创建 HttpURLConnection 对象
HttpURLConnection con = (HttpURLConnection) url.openConnection();
// 设置请求方法
con.setRequestMethod("GET");
// 添加请求头
con.setRequestProperty("User-Agent", "Mozilla/5.0");
// 发送请求
int responseCode = con.getResponseCode();
// 读取响应内容
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
// 打印响应内容
System.out.println(response.toString());
}
}
```
在上面的示例中,我们使用 `java.net.HttpURLConnection` 类发送了一个 GET 请求,并打印了响应内容。请注意,我们还添加了一个请求头,即 User-Agent。这是因为一些网站可能会根据 User-Agent 的值来识别请求的来源,如果没有设置 User-Agent,可能会被拒绝访问。
如果你需要使用代理服务器发送请求,可以在创建 HttpURLConnection 对象之前设置系统属性,例如:
```java
System.setProperty("http.proxyHost", "yourproxy.com");
System.setProperty("http.proxyPort", "8080");
```
在这个示例中,我们将代理服务器的主机名设置为 `yourproxy.com`,端口号设置为 `8080`。如果你的代理服务器需要身份验证,可以设置以下系统属性:
```java
System.setProperty("http.proxyUser", "username");
System.setProperty("http.proxyPassword", "password");
```
在这个示例中,我们将用户名设置为 `username`,密码设置为 `password`。请注意,这种方法不是最安全的,因为用户名和密码是以明文形式传输的。如果你的代理服务器支持其他身份验证方法,如基本身份验证或摘要身份验证,可以在请求头中添加适当的头信息。