deason há 1 ano atrás
pai
commit
8aea0c56f2

+ 1 - 1
src/main/java/com/qmth/exam/reserve/config/SwaggerConfig.java

@@ -30,7 +30,7 @@ public class SwaggerConfig {
         log.info("swagger init...");
 
         List<Parameter> parameters = new ArrayList<>();
-        parameters.add(new ParameterBuilder().name("Authorization").modelRef(new ModelRef("String")).parameterType("header").required(false).build());
+        parameters.add(new ParameterBuilder().name("authorization").modelRef(new ModelRef("String")).parameterType("header").required(false).build());
         parameters.add(new ParameterBuilder().name("time").modelRef(new ModelRef("String")).parameterType("header").required(false).build());
 
         return new Docket(DocumentationType.SWAGGER_2)

+ 89 - 0
src/main/java/com/qmth/exam/reserve/util/HttpClientBuilder.java

@@ -0,0 +1,89 @@
+package com.qmth.exam.reserve.util;
+
+import okhttp3.ConnectionPool;
+import okhttp3.OkHttpClient;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.net.ssl.*;
+import java.security.SecureRandom;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.concurrent.TimeUnit;
+
+public class HttpClientBuilder {
+
+    private static final Logger log = LoggerFactory.getLogger(HttpClientBuilder.class);
+
+    private static OkHttpClient client;
+
+    static {
+        client = Client.INSTANCE.getInstance();
+    }
+
+    public static OkHttpClient getClient() {
+        return client;
+    }
+
+    private enum Client {
+
+        INSTANCE;
+
+        Client() {
+            ConnectionPool connectionPool = new ConnectionPool(10, 5L, TimeUnit.MINUTES);
+
+            instance = new OkHttpClient.Builder()
+                    // .retryOnConnectionFailure(false)
+                    .connectionPool(connectionPool).connectTimeout(30, TimeUnit.SECONDS).
+                    readTimeout(60, TimeUnit.SECONDS)
+                    .writeTimeout(60, TimeUnit.SECONDS)
+                    .sslSocketFactory(sslSocketFactory(), trustAllCert())
+                    .hostnameVerifier(trustAllHost())
+                    .build();
+
+            log.debug("OkHttpClient init..");
+        }
+
+        private OkHttpClient instance;
+
+        public OkHttpClient getInstance() {
+            return instance;
+        }
+    }
+
+    private static SSLSocketFactory sslSocketFactory() {
+        try {
+            SSLContext sslContext = SSLContext.getInstance("TLS");
+            sslContext.init(null, new TrustManager[]{trustAllCert()}, new SecureRandom());
+            return sslContext.getSocketFactory();
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static HostnameVerifier trustAllHost() {
+        return (hostname, sslSession) -> true;
+    }
+
+    private static X509TrustManager trustAllCert() {
+        return new X509TrustManager() {
+
+            @Override
+            public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
+
+            }
+
+            @Override
+            public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
+
+            }
+
+            @Override
+            public X509Certificate[] getAcceptedIssuers() {
+                return new X509Certificate[0];
+            }
+        };
+    }
+
+}

+ 95 - 0
src/main/java/com/qmth/exam/reserve/util/JsonHelper.java

@@ -0,0 +1,95 @@
+package com.qmth.exam.reserve.util;
+
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.JavaType;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.qmth.boot.core.exception.StatusException;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class JsonHelper {
+
+    private static final Logger log = LoggerFactory.getLogger(JsonHelper.class);
+
+    public static String toJson(Object object) {
+        if (object == null) {
+            return null;
+        }
+
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+            return mapper.writeValueAsString(object);
+        } catch (Exception e) {
+            log.error(e.getMessage());
+            throw new StatusException("转换JSON失败!", e);
+        }
+    }
+
+    public static <T> T toObj(String jsonStr, Class<T> clazz) {
+        if (StringUtils.isEmpty(jsonStr)) {
+            return null;
+        }
+
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+            return mapper.readValue(jsonStr, clazz);
+        } catch (Exception e) {
+            log.error("JSON:{} ERR:{}", jsonStr, e.getMessage());
+            throw new StatusException("JSON解析失败!", e);
+        }
+    }
+
+    public static <T> List<T> toList(String jsonStr, Class<T> clazz) {
+        if (StringUtils.isEmpty(jsonStr)) {
+            return null;
+        }
+
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
+            JavaType javaType = mapper.getTypeFactory().constructCollectionType(List.class, clazz);
+            return mapper.readValue(jsonStr, javaType);
+        } catch (Exception e) {
+            log.error("JSON:{} ERR:{}", jsonStr, e.getMessage());
+            throw new StatusException("JSON解析失败!", e);
+        }
+    }
+
+    public static <T> Map<String, T> toMap(String jsonStr, Class<T> clazz) {
+        if (StringUtils.isEmpty(jsonStr)) {
+            return null;
+        }
+
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            JavaType javaType = mapper.getTypeFactory().constructMapType(HashMap.class, String.class, clazz);
+            return mapper.readValue(jsonStr, javaType);
+        } catch (Exception e) {
+            log.error("JSON:{} ERR:{}", jsonStr, e.getMessage());
+            throw new StatusException("JSON解析失败!", e);
+        }
+    }
+
+    public static JsonNode getNode(String jsonStr) {
+        if (StringUtils.isEmpty(jsonStr)) {
+            return null;
+        }
+
+        try {
+            ObjectMapper mapper = new ObjectMapper();
+            return mapper.readTree(jsonStr);
+        } catch (Exception e) {
+            log.error("JSON:{} ERR:{}", jsonStr, e.getMessage());
+            throw new StatusException("JSON解析失败!", e);
+        }
+    }
+
+}