HTTP请求与响应:使用Java发送GET/POST请求
在Java中,我们可以使用各种库来发送HTTP GET或POST请求。这里我将展示如何使用Java的HttpURLConnection和OkHttp库进行操作。
- 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) throws Exception {
// 创建URL对象
URL url = new URL("http://example.com/");
// 创建HttpURLConnection连接
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
// 设置请求方法
connection.setRequestMethod("GET"); // 或 POST
// 如果是POST,需要设置请求参数
if ("POST".equals(connection.getRequestMethod()))) {
connection.setDoOutput(true);
String data = "key1=value1&key2=value2"; // 需要替换为实际内容
byte[] inputBytes = data.getBytes("UTF-8"); // 注意这里需要转换字符编码
connection.getOutputStream().write(inputBytes);
}
// 获取响应状态码
int responseCode = connection.getResponseCode();
System.out.println("Response Code: " + responseCode);
// 读取响应数据(如果是GET,不需要写这行)
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())));
String responseLine;
while ((responseLine = reader.readLine()) != null)) {
System.out.println(responseLine);
}
// 关闭连接
connection.disconnect();
}
}
- OkHttp (推荐新版本)
import okhttp3.*;
public class OkHttpExample {
public static void main(String[] args) throws Exception {
// 创建OkHttpClient对象
OkHttpClient client = new OkHttpClient();
// 发送GET请求
Request requestGet = new Request.Builder()
.url("http://example.com/"))
.build();
Response responseGet = client.newCall(requestGet).execute();
System.out.println("Response Get Code: " + responseGet.code());
// 发送POST请求(这里假设数据以JSON格式发送)
Request requestPostJson = new Request.Builder()
.url("http://example.com/post/"))
.post(new FormBody.Builder()
.add("key1", "value1")
.add("key2", "value2")
.build()))
.build();
Response responsePostJson = client.newCall(requestPostJson).execute();
System.out.println("Response Post Json Code: " + responsePostJson.code());
// 关闭OkHttpClient连接
client.close();
}
}
选择哪个库,主要取决于你的项目需求和个人偏好。如果你是新项目或者对OkHttp更熟悉,那么使用OkHttp会更加高效和简洁。
还没有评论,来说两句吧...