生成一个参数是泛型,返回值也是泛型的http请求工具类,请求类型是post
时间: 2023-12-29 10:04:46 浏览: 183
HTTP发送POST请求的工具类
好的,以下是一个简单的Java代码示例,实现了一个泛型的Http请求工具类,请求类型为POST:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
public class HttpUtil<T> {
public T sendPostRequest(String url, Map<String, String> params, Class<T> responseType) {
T response = null;
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
// 设置请求头
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 设置请求参数
StringBuilder postData = new StringBuilder();
for (Map.Entry<String, String> param : params.entrySet()) {
if (postData.length() != 0) {
postData.append('&');
}
postData.append(param.getKey());
postData.append('=');
postData.append(param.getValue());
}
byte[] postDataBytes = postData.toString().getBytes("UTF-8");
con.setDoOutput(true);
con.getOutputStream().write(postDataBytes);
int responseCode = con.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
StringBuilder responseBuilder = new StringBuilder();
String line;
while ((line = in.readLine()) != null) {
responseBuilder.append(line);
}
in.close();
response = responseType.cast(responseBuilder.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
}
```
这个工具类中有一个 `sendPostRequest` 方法,用于发送 POST 请求。它接收三个参数,第一个是请求的URL,第二个是请求参数,第三个是响应类型。在这个方法中,我们使用了 Java 的反射机制,将响应结果转换成了指定的泛型类型。
这个工具类可以用于发送各种类型的 POST 请求,并且可以将响应结果转换成指定的泛型类型。如果需要发送 GET 请求,可以类似地实现一个 `sendGetRequest` 方法即可。
阅读全文