Http

类简介

Http 类是一个用于简化 HTTP 请求操作的工具类,提供了发送 GET 和 POST 请求的便捷方法。它支持发送 JSON 数据、表单数据,并允许自定义请求头。

公共方法

1. postJson(String serverUrl, String payload)

描述: 发送一个带有 JSON 数据的 POST 请求。

参数:

  • serverUrlString - 目标服务器的 URL。
  • payloadString - 需要发送的 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 请求,并允许设置自定义请求头。

参数:

  • serverUrlString - 目标服务器的 URL。
  • payloadString - 需要发送的 JSON 数据。
  • headersMap<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 请求。

参数:

  • serverUrlString - 目标服务器的 URL。
  • paramsMap<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 请求,并允许设置自定义请求头。

参数:

  • serverUrlString - 目标服务器的 URL。
  • paramsMap<String, String> - 表单数据的键值对。
  • headersMap<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 请求。

参数:

  • serverUrlString - 目标服务器的 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 请求,并允许设置自定义请求头。

参数:

  • serverUrlString - 目标服务器的 URL。
  • headersMap<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 中读取数据并返回字节数组。

参数:

  • inputStreamInputStream - 输入流。

返回值:

  • byte[] - 包含从输入流中读取的字节数据。

类依赖

  • ResponseVo 类:用于封装 HTTP 请求的响应结果,包括状态码和响应体。

注意事项

  • 此类方法通过 HttpURLConnection 实现 HTTP 请求。
  • 异常处理在方法内部统一为 RuntimeException,需要调用者根据业务需求进行进一步处理。
  • 所有的公共方法默认是静态方法,适合直接调用,无需实例化。

扩展方法

可以根据业务需求扩展此工具类,例如增加对其他 HTTP 方法的支持(如 PUT、DELETE),或增加对文件上传的支持。