Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

optimize the code, fix some problems #21

Merged
merged 1 commit into from
Dec 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@
<groupId>tech.ynfy</groupId>
<artifactId>ynfy-tool-httpconnect</artifactId>
<name>${project.groupId}:${project.artifactId}</name>
<version>1.0.5</version>
<version>1.1.0-SNAPSHOT</version>
<description>A Http Util for Java</description>
<url>https://github.com/ynfy-tech/ynfy-tool-httpconnect</url>

<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
</properties>

<!-- open source info -->
Expand Down
112 changes: 112 additions & 0 deletions src/main/java/http/HttpDeleteUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
package http;


import java.io.IOException;
import java.net.HttpURLConnection;
import java.util.Map;

/**
* http 工具类
*
* @author Hsiong
* @version 1.0.0
* @since 2020/7/9 5:42 下午
*/
public class HttpDeleteUtil extends InitUtil {

private static class Inner {
private static final HttpDeleteUtil instance = new HttpDeleteUtil();
}

/***
* 单例模式之:静态内部类单例模式
* 只有第一次调用getInstance方法时,虚拟机才加载 Inner 并初始化instance ,只有一个线程可以获得对象的初始化锁,其他线程无法进行初始化,
* 保证对象的唯一性。目前此方式是所有单例模式中最推荐的模式,但具体还是根据项目选择。
* @return
*/
public static HttpDeleteUtil getInstance() {
return Inner.instance;
}

/**
* 向指定URL发送 delete 方法的请求
*
* @param url 发送请求的URL
* @param <T> 泛型入参
* @return String 所代表远程资源的响应结果
*/
public <T> String send(String url) {
HttpURLConnection connection = null;
try {
connection = getConnection(url);
connection.setRequestMethod("DELETE");
// 建立实际的连接
connection.connect();
} catch (IOException e) {
e.printStackTrace();
}
return getResponseString(connection);
}

/**
* 向指定URL发送 delete 方法的请求
*
* @param url 发送请求的URL
* @param header 请求头, "key1":"value1"的形式
* @param <T> 泛型入参
* @return String 所代表远程资源的响应结果
*/
public <T> String send(String url, Map<String, String> header) {
HttpURLConnection connection = null;
try {
connection = getConnection(url);
connection.setRequestMethod("DELETE");
if (header != null) {
for (Map.Entry<String, String> entry : header.entrySet()) {
connection.setRequestProperty(entry.getKey(), entry.getValue());
}
}
// 建立实际的连接
connection.connect();
} catch (IOException e) {
e.printStackTrace();
}
return getResponseString(connection);
}

/**
* 向指定URL发送 delete 方法的请求
*
* @param url 发送请求的URL
* @param paramObj 请求参数,以对象的形式
* @param header 请求头, "key1":"value1"的形式
* @param <T> 泛型入参
* @return String 所代表远程资源的响应结果
*/
public <T> String send(String url, Map<String, String> header, T paramObj) {
HttpURLConnection connection = null;
try {
String urlParams = appendGetUrlParam(url, paramObj);
connection = getConnection(urlParams);
connection.setRequestMethod("DELETE");
if (header != null) {
for (Map.Entry<String, String> entry : header.entrySet()) {
connection.setRequestProperty(entry.getKey(), entry.getValue());
}
}
// 建立实际的连接
connection.connect();
} catch (IOException e) {
e.printStackTrace();
}
return getResponseString(connection);
}



/**
* Default constructor added by Java.
*/
public HttpDeleteUtil() {
}
}
113 changes: 113 additions & 0 deletions src/main/java/http/HttpGetUtil.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
package http;


import java.io.IOException;
import java.net.HttpURLConnection;
import java.util.Map;

/**
* http 工具类
*
* @author Hsiong
* @version 1.0.0
* @since 2020/7/9 5:42 下午
*/
public class HttpGetUtil extends InitUtil {

private static class Inner {
private static final HttpGetUtil instance = new HttpGetUtil();
}

/***
* 单例模式之:静态内部类单例模式
* 只有第一次调用getInstance方法时,虚拟机才加载 Inner 并初始化instance ,只有一个线程可以获得对象的初始化锁,其他线程无法进行初始化,
* 保证对象的唯一性。目前此方式是所有单例模式中最推荐的模式,但具体还是根据项目选择。
* @return
*/
public static HttpGetUtil getInstance() {
return Inner.instance;
}

/**
* 向指定URL发送GET方法的请求
* <p>
* 注意: get 请求不支持中文, 需要 UrlEncode 对参数部分进行编码
*
* @param url 发送请求的URL
* @param <T> 泛型入参
* @return String 所代表远程资源的响应结果
*/
public <T> String send(String url) {
HttpURLConnection connection = null;
try {
connection = getConnection(url);
// 建立实际的连接
connection.connect();
} catch (IOException e) {
e.printStackTrace();
}
return getResponseString(connection);
}

/**
* 向指定URL发送GET方法的请求
* <p>
* 注意: get 请求不支持中文, 需要 UrlEncode 对参数部分进行编码
*
* @param url 发送请求的URL
* @param header 请求头, "key1":"value1"的形式
* @param <T> 泛型入参
* @return String 所代表远程资源的响应结果
*/
public <T> String send(String url, Map<String, String> header) {
HttpURLConnection connection = null;
try {
connection = getConnection(url);
if (header != null) {
for (Map.Entry<String, String> entry : header.entrySet()) {
connection.setRequestProperty(entry.getKey(), entry.getValue());
}
}
// 建立实际的连接
connection.connect();
} catch (IOException e) {
e.printStackTrace();
}
return getResponseString(connection);
}

/**
* 向指定URL发送GET方法的请求
* <p>
* 注意: get 请求不支持中文, 需要 UrlEncode 对参数部分进行编码
*
* @param url 发送请求的URL
* @param paramObj 请求参数,以对象的形式
* @param header 请求头, "key1":"value1"的形式
* @param <T> 泛型入参
* @return String 所代表远程资源的响应结果
*/
public <T> String send(String url, Map<String, String> header, T paramObj) {
HttpURLConnection connection = null;
try {
String urlParams = appendGetUrlParam(url, paramObj);
connection = getConnection(urlParams);
if (header != null) {
for (Map.Entry<String, String> entry : header.entrySet()) {
connection.setRequestProperty(entry.getKey(), entry.getValue());
}
}
// 建立实际的连接
connection.connect();
} catch (IOException e) {
e.printStackTrace();
}
return getResponseString(connection);
}

/**
* Default constructor added by Java.
*/
public HttpGetUtil() {
}
}