最简单的 GET 请求:
java
String result = HttpUtil.get("https://www.baidu.com");
带参数的 GET 请求:
java
// 方法1: 直接拼接URL参数
String result = HttpUtil.get("https://www.baidu.com?name=张三&age=18");
// 方法2: 使用 HashMap 构建参数
HashMap<String, Object> params = new HashMap<>();
params.put("name", "张三");
params.put("age", "18");
String result = HttpUtil.get("https://www.baidu.com", params);
POST 请求:
java
// 简单POST
String result = HttpUtil.post("https://www.baidu.com", "body content");
// 带表单参数的POST
HashMap<String, Object> params = new HashMap<>();
params.put("name", "张三");
params.put("age", "18");
String result = HttpUtil.post("https://www.baidu.com", params);
发送 JSON:
java
HashMap<String, Object> paramMap = new HashMap<>();
paramMap.put("name", "张三");
paramMap.put("age", 18);
String result = HttpRequest.post("https://www.baidu.com")
.header("Content-Type", "application/json")
.body(JSONUtil.toJsonStr(paramMap))
.execute()
.body();
高度自定义的请求:
java
HttpRequest request = HttpRequest.post("https://www.baidu.com")
.header("Authorization", "Bearer token123")
.header("Custom-Header", "value")
.timeout(20000) //超时时间20秒
.form(params) //表单参数
.cookie("sessionId", "abc123");
HttpResponse response = request.execute();
String result = response.body();
int status = response.getStatus();
文件上传:
java
HashMap<String, Object> params = new HashMap<>();
params.put("file", FileUtil.file("path/file.jpg"));
String result = HttpUtil.post("https://www.baidu.com/upload", params);
处理响应:
java
HttpResponse response = HttpRequest.get("https://www.baidu.com").execute();
// 获取响应状态码
int status = response.getStatus();
// 获取响应头
String contentType = response.header("Content-Type");
// 获取响应体
String body = response.body();
// 获取Cookies
List<HttpCookie> cookies = response.getCookies();
设置代理:
java
HttpRequest.get("https://www.baidu.com")
.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress("127.0.0.1", 8888)))
.execute();
请求建议:
- 建议在生产环境中设置合适的超时时间
- 对于大量请求,使用 HttpUtil.createGet() 或 HttpUtil.createPost() 预创建请求对象
- 处理响应时注意异常处理
- 如果需要复用连接,考虑使用 HttpUtil.createHttp() 创建客户端
错误处理示例:
java
try {
HttpResponse response = HttpRequest.get("https://www.baidu.com")
.timeout(20000)
.execute();
if (response.isOk()) {
String result = response.body();
// 处理正常响应
}
} catch (HttpException e) {
// 处理超时等网络异常
e.printStackTrace();
} catch (Exception e) {
// 处理其他异常
e.printStackTrace();
}