|
| 1 | +# http |
| 2 | + |
| 3 | +## HttpUtils 类文档 |
| 4 | + |
| 5 | +com.litongjava.tio.utils.http.HttpUtils 是对 okhttp 的二次封装,使用前请添加 okhttp 依赖 |
| 6 | +`HttpUtils` 是一个使用 OkHttpClient 处理 HTTP 请求和响应的 Java 工具类。该类提供了一组静态方法,方便进行 GET 和 POST 请求,并处理请求头和请求体。 |
| 7 | + |
| 8 | +``` |
| 9 | + <dependency> |
| 10 | + <groupId>com.squareup.okhttp3</groupId> |
| 11 | + <artifactId>okhttp</artifactId> |
| 12 | + <version>3.14.9</version> |
| 13 | + </dependency> |
| 14 | +``` |
| 15 | + |
| 16 | +### 公共方法 |
| 17 | + |
| 18 | +#### GET 请求方法 |
| 19 | + |
| 20 | +1. **get(String url, Map<String, String> headerMap)** |
| 21 | + 向指定 URL 发送带有可选头的 HTTP GET 请求。 |
| 22 | + |
| 23 | + - **参数:** |
| 24 | + - `url` - 发送 GET 请求的 URL。 |
| 25 | + - `headerMap` - 包含要附加到请求的头名称和值的映射。如果不需要头,则可以为 `null`。 |
| 26 | + - **返回值:** `Response` - 服务器的响应。 |
| 27 | + - **抛出:** 如果请求过程中发生错误,则抛出 `Exception`。 |
| 28 | + |
| 29 | +2. **get(String url)** |
| 30 | + 向指定 URL 发送 HTTP GET 请求。 |
| 31 | + - **参数:** |
| 32 | + - `url` - 发送 GET 请求的 URL。 |
| 33 | + - **返回值:** `Response` - 服务器的响应。 |
| 34 | + - **抛出:** 如果请求过程中发生错误,则抛出 `Exception`。 |
| 35 | + |
| 36 | +#### POST 请求方法 |
| 37 | + |
| 38 | +1. **post(String url, Map<String, String> headerMap, List<String> paramNames, List<String> paramValues)** |
| 39 | + 向指定 URL 发送带有可选头和表单参数的 HTTP POST 请求。 |
| 40 | + |
| 41 | + - **参数:** |
| 42 | + - `url` - 发送 POST 请求的 URL。 |
| 43 | + - `headerMap` - 包含要附加到请求的头名称和值的映射。如果不需要头,则可以为 `null`。 |
| 44 | + - `paramNames` - 表单数据的参数名称列表。 |
| 45 | + - `paramValues` - 对应于 `paramNames` 的参数值列表。 |
| 46 | + - **返回值:** `Response` - 服务器的响应。 |
| 47 | + - **抛出:** 如果请求过程中发生错误,则抛出 `Exception`。 |
| 48 | + |
| 49 | +2. **post(String url, Map<String, String> headerMap, Map<String, String> paramMap)** |
| 50 | + 使用参数映射发送 HTTP POST 请求。 |
| 51 | + |
| 52 | + - **参数:** |
| 53 | + - `url` - 发送 POST 请求的 URL。 |
| 54 | + - `headerMap` - 包含头名称和值的映射。 |
| 55 | + - `paramMap` - 包含表单数据名称和值的映射。 |
| 56 | + - **返回值:** `Response` - 服务器的响应。 |
| 57 | + - **抛出:** 如果请求过程中发生错误,则抛出 `Exception`。 |
| 58 | + |
| 59 | +3. **post(String url, Map<String, String> headerMap, String bodyString)** |
| 60 | + 发送带有字符串体的 HTTP POST 请求。 |
| 61 | + |
| 62 | + - **参数:** |
| 63 | + - `url` - 发送 POST 请求的 URL。 |
| 64 | + - `headerMap` - 包含头名称和值的映射。 |
| 65 | + - `bodyString` - 代表请求体的字符串。 |
| 66 | + - **返回值:** `Response` - 服务器的响应。 |
| 67 | + - **抛出:** 如果请求过程中发生错误,则抛出 `Exception`。 |
| 68 | + |
| 69 | +4. **post(String url, Map<String, String> headerMap)** |
| 70 | + 发送带有可选头的 HTTP POST 请求。 |
| 71 | + |
| 72 | + - **参数:** |
| 73 | + - `url` - 发送 POST 请求的 URL。 |
| 74 | + - `headerMap` - 包含头名称和值的映射。如果不需要头,则可以为 `null`。 |
| 75 | + - **返回值:** `Response` - 服务器的响应。 |
| 76 | + - **抛出:** 如果请求过程中发生错误,则抛出 `Exception`。 |
| 77 | + |
| 78 | +5. **post(String url)** |
| 79 | + 向指定 URL 发送 HTTP POST 请求。 |
| 80 | + - **参数:** |
| 81 | + - `url` - 发送 POST 请求的 URL。 |
| 82 | + - **返回值:** `Response` - 服务器的响应。 |
| 83 | + - **抛出:** 如果请求过程中发生错误,则抛出 `Exception`。 |
| 84 | + |
| 85 | +### 使用方法 |
| 86 | + |
| 87 | +要使用 `HttpUtils` 类,只需用适当的参数调用所需方法。例如,要发送 GET 请求,可以使用: |
| 88 | + |
| 89 | +```java |
| 90 | +Response response = HttpUtils.get("http://example.com"); |
| 91 | +``` |
| 92 | + |
| 93 | +对于带有表单数据的 POST 请求,你可能会使用: |
| 94 | + |
| 95 | +```java |
| 96 | +Map<String, String> paramMap = new HashMap<>(); |
| 97 | +paramMap.put("key1", "value1"); |
| 98 | +paramMap.put("key2", "value2"); |
| 99 | +Response response = HttpUtils.post("http://example.com", null, paramMap); |
| 100 | +``` |
| 101 | + |
| 102 | +确保在使用后正确处理 `Response` 对象并关闭它,以避免资源泄露。 |
| 103 | + |
| 104 | +### 注意事项 |
| 105 | + |
| 106 | +- 所有方法都抛出通用的 `Exception`,因此建议根据使用场景处理特定异常。 |
| 107 | +- 该类使用 `okhttp3` 库发送和接收 HTTP 请求和响应。 |
| 108 | +- 管理 `Response` 对象非常重要。确保在使用后将其关闭,以释放网络资源。 |
| 109 | +- 该类不处理重试或更复杂的 HTTP 功能,如缓存或连接池。对于更高级的用例,请直接使用 `OkHttpClient`。 |
| 110 | +- 请确保在实现中包含错误处理,以管理可能出现的网络问题或意外的响应状态。 |
0 commit comments