Http
类简介
Http
类是一个用于简化 HTTP 请求操作的工具类,提供了发送 GET 和 POST 请求的便捷方法。它支持发送 JSON 数据、表单数据,并允许自定义请求头。
公共方法
1. postJson(String serverUrl, String payload)
描述: 发送一个带有 JSON 数据的 POST 请求。
参数:
serverUrl
:String
- 目标服务器的 URL。payload
:String
- 需要发送的 JSON 数据。
返回值:
ResponseVo
- 包含响应码和响应体的对象。
示例:
String url = "https://example.com/api";
String jsonPayload = "{\"key\":\"value\"}";
ResponseVo response = Http.postJson(url, jsonPayload);
System.out.println(response);
2. postJson(String serverUrl, String payload, Map<String, String> headers)
描述: 发送一个带有 JSON 数据的 POST 请求,并允许设置自定义请求头。
参数:
serverUrl
:String
- 目标服务器的 URL。payload
:String
- 需要发送的 JSON 数据。headers
:Map<String, String>
- 请求头的键值对,可以为null
。
返回值:
ResponseVo
- 包含响应码和响应体的对象。
示例:
String url = "https://example.com/api";
String jsonPayload = "{\"key\":\"value\"}";
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "Bearer token");
ResponseVo response = Http.postJson(url, jsonPayload, headers);
System.out.println(response);
3. post(String serverUrl, Map<String, String> params)
描述: 发送一个带有表单数据的 POST 请求。
参数:
serverUrl
:String
- 目标服务器的 URL。params
:Map<String, String>
- 表单数据的键值对。
返回值:
ResponseVo
- 包含响应码和响应体的对象。
示例:
String url = "https://example.com/api";
Map<String, String> params = new HashMap<>();
params.put("username", "admin");
params.put("password", "123456");
ResponseVo response = Http.post(url, params);
System.out.println(response);
4. post(String serverUrl, Map<String, String> params, Map<String, String> headers)
描述: 发送一个带有表单数据的 POST 请求,并允许设置自定义请求头。
参数:
serverUrl
:String
- 目标服务器的 URL。params
:Map<String, String>
- 表单数据的键值对。headers
:Map<String, String>
- 请求头的键值对,可以为null
。
返回值:
ResponseVo
- 包含响应码和响应体的对象。
示例:
String url = "https://example.com/api";
Map<String, String> params = new HashMap<>();
params.put("username", "admin");
params.put("password", "123456");
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "Bearer token");
ResponseVo response = Http.post(url, params, headers);
System.out.println(response);
5. get(String serverUrl)
描述: 发送一个 GET 请求。
参数:
serverUrl
:String
- 目标服务器的 URL。
返回值:
ResponseVo
- 包含响应码和响应体的对象。
示例:
String url = "https://example.com/api";
ResponseVo response = Http.get(url);
System.out.println(response);
6. get(String serverUrl, Map<String, String> headers)
描述: 发送一个 GET 请求,并允许设置自定义请求头。
参数:
serverUrl
:String
- 目标服务器的 URL。headers
:Map<String, String>
- 请求头的键值对,可以为null
。
返回值:
ResponseVo
- 包含响应码和响应体的对象。
示例:
String url = "https://example.com/api";
Map<String, String> headers = new HashMap<>();
headers.put("Authorization", "Bearer token");
ResponseVo response = Http.get(url, headers);
System.out.println(response);
私有方法
1. readInputStream(InputStream inputStream)
描述: 从 InputStream
中读取数据并返回字节数组。
参数:
inputStream
:InputStream
- 输入流。
返回值:
byte[]
- 包含从输入流中读取的字节数据。
类依赖
ResponseVo
类:用于封装 HTTP 请求的响应结果,包括状态码和响应体。
注意事项
- 此类方法通过
HttpURLConnection
实现 HTTP 请求。 - 异常处理在方法内部统一为
RuntimeException
,需要调用者根据业务需求进行进一步处理。 - 所有的公共方法默认是静态方法,适合直接调用,无需实例化。
扩展方法
可以根据业务需求扩展此工具类,例如增加对其他 HTTP 方法的支持(如 PUT、DELETE),或增加对文件上传的支持。