Ver Fonte

fix 增加HttpProxy

Young há 2 anos atrás
pai
commit
745001f5d6

+ 35 - 0
support-http/src/main/java/cn/nosum/http/DefaultRequestHttpBuilder.java

@@ -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);
+    }
+
+
+}

+ 7 - 1
support-http/src/main/java/cn/nosum/http/RequestHttpProperties.java

@@ -1,7 +1,10 @@
 package cn.nosum.http;
 
 import cn.nosum.http.enums.HttpType;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
 import lombok.Data;
+import lombok.NoArgsConstructor;
 
 /**
  * HTTP 相关配置.
@@ -9,12 +12,15 @@ import lombok.Data;
  * @author Young
  */
 @Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
 public class RequestHttpProperties {
 
     /**
      * http type
      */
-    private HttpType type;
+    private HttpType httpType;
 
     /**
      * http proxy host.