|
@@ -0,0 +1,35 @@
|
|
|
+package cn.nosum.http;
|
|
|
+
|
|
|
+
|
|
|
+import cn.nosum.http.apache.ApacheRequestHttp;
|
|
|
+import cn.nosum.http.enums.HttpType;
|
|
|
+import cn.nosum.http.jodd.JoddRequestHttp;
|
|
|
+
|
|
|
+import java.util.concurrent.ConcurrentHashMap;
|
|
|
+import java.util.function.Function;
|
|
|
+
|
|
|
+/**
|
|
|
+ * RequestHttp 构建器.
|
|
|
+ *
|
|
|
+ * @author Young
|
|
|
+ */
|
|
|
+public class DefaultRequestHttpBuilder {
|
|
|
+
|
|
|
+ private static final ConcurrentHashMap<String, Function<RequestHttpProperties, RequestHttp>> REQUEST_HTTP_MAP = new ConcurrentHashMap<>();
|
|
|
+
|
|
|
+ static {
|
|
|
+ REQUEST_HTTP_MAP.put(HttpType.OK_HTTP.getName(), JoddRequestHttp::new);
|
|
|
+ REQUEST_HTTP_MAP.put(HttpType.JODD_HTTP.getName(), JoddRequestHttp::new);
|
|
|
+ REQUEST_HTTP_MAP.put(HttpType.APACHE_HTTP.getName(), ApacheRequestHttp::new);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static RequestHttp builder(HttpType httpType) {
|
|
|
+ return builder(RequestHttpProperties.builder().httpType(httpType).build());
|
|
|
+ }
|
|
|
+
|
|
|
+ public static RequestHttp builder(RequestHttpProperties properties) {
|
|
|
+ return REQUEST_HTTP_MAP.getOrDefault(properties.getHttpType().getName(), ApacheRequestHttp::new).apply(properties);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|