用Java写一个http工具类
时间: 2023-11-12 13:06:52 浏览: 36
以下是一个简单的Java HTTP工具类,可以发送GET和POST请求并返回响应信息:
```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Map;
public class HttpUtil {
public static String sendGet(String url, Map<String, String> params) throws Exception {
StringBuilder result = new StringBuilder();
String encodedUrl = url;
if (params != null) {
encodedUrl += "?";
for (Map.Entry<String, String> entry : params.entrySet()) {
encodedUrl += URLEncoder.encode(entry.getKey(), "UTF-8") + "=" + URLEncoder.encode(entry.getValue(), "UTF-8") + "&";
}
encodedUrl = encodedUrl.substring(0, encodedUrl.length() - 1);
}
URL obj = new URL(encodedUrl);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
result.append(inputLine);
}
in.close();
return result.toString();
}
public static String sendPost(String url, Map<String, String> params) throws Exception {
StringBuilder result = new StringBuilder();
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
con.setDoOutput(true);
StringBuilder postData = new StringBuilder();
if (params != null) {
for (Map.Entry<String, String> entry : params.entrySet()) {
if (postData.length() != 0) {
postData.append("&");
}
postData.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
postData.append("=");
postData.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
}
}
byte[] postDataBytes = postData.toString().getBytes("UTF-8");
con.getOutputStream().write(postDataBytes);
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
result.append(inputLine);
}
in.close();
return result.toString();
}
}
```
使用方法:
发送GET请求:
```java
String url = "https://www.example.com";
Map<String, String> params = new HashMap<>();
params.put("param1", "value1");
params.put("param2", "value2");
String response = HttpUtil.sendGet(url, params);
System.out.println(response);
```
发送POST请求:
```java
String url = "https://www.example.com";
Map<String, String> params = new HashMap<>();
params.put("param1", "value1");
params.put("param2", "value2");
String response = HttpUtil.sendPost(url, params);
System.out.println(response);
```