Java 使用 HttpURLConnection 发起网络请求(GET 和 POST)
在 Java 中,我们可以使用 HttpURLConnection 类来发起网络请求。下面分别介绍如何使用 HttpURLConnection 类发送 POST 请求和 GET 请求。
- 发送 POST 请求
发送 POST 请求需要先将请求参数转换成字节数组,然后设置请求头,最后通过输出流写入请求参数。
import java.io.*;
import java.net.*;
public class PostRequestExample {
public static void main(String[] args) {
try {
// 创建 URL 对象
URL url = new URL('http://example.com/api');
// 创建 HttpURLConnection 对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置请求方法为 POST
conn.setRequestMethod('POST');
// 设置请求头
conn.setRequestProperty('Content-Type', 'application/json');
conn.setRequestProperty('Accept', 'application/json');
// 开启输出流
conn.setDoOutput(true);
// 构造请求参数
String json = '{"username":"test","password":"123456"}';
byte[] bytes = json.getBytes();
// 写入请求参数
OutputStream os = conn.getOutputStream();
os.write(bytes);
os.flush();
os.close();
// 获取响应结果
int statusCode = conn.getResponseCode();
String result = '';
if (statusCode == 200) {
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
result += line;
}
br.close();
is.close();
}
// 输出响应结果
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
- 发送 GET 请求
发送 GET 请求需要将请求参数拼接在 URL 后面,然后通过输入流读取响应结果。
import java.io.*;
import java.net.*;
public class GetRequestExample {
public static void main(String[] args) {
try {
// 拼接 URL 和请求参数
String urlStr = 'http://example.com/api?username=test&password=123456';
URL url = new URL(urlStr);
// 创建 HttpURLConnection 对象
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
// 设置请求方法为 GET
conn.setRequestMethod('GET');
// 获取响应结果
int statusCode = conn.getResponseCode();
String result = '';
if (statusCode == 200) {
InputStream is = conn.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String line;
while ((line = br.readLine()) != null) {
result += line;
}
br.close();
is.close();
}
// 输出响应结果
System.out.println(result);
} catch (IOException e) {
e.printStackTrace();
}
}
}
原文地址: https://www.cveoy.top/t/topic/mPEG 著作权归作者所有。请勿转载和采集!