1
zhang
3 天以前 bc56530307e0e92b94a1abb5d38368f04b92e990
zy-acs-hex/src/main/java/com/zy/acs/hex/utils/HttpGo.java
@@ -18,7 +18,7 @@
/**
 * Minimal OkHttp wrapper: GET / POST only.
 *
 * <p>
 * - fluent API (get / postJson / postForm)
 * - default singleton instance (thread-safe)
 * - per-request headers + default headers
@@ -41,7 +41,9 @@
                : Collections.unmodifiableMap(new LinkedHashMap<>(defaultHeaders));
    }
    /** Shared default instance (safe SSL by default). */
    /**
     * Shared default instance (safe SSL by default).
     */
    public static HttpGo defaults() {
        return Holder.DEFAULT;
    }
@@ -78,12 +80,16 @@
    // ===================== POST =====================
    /** POST JSON string payload (null/blank -> "{}"). */
    /**
     * POST JSON string payload (null/blank -> "{}").
     */
    public HttpResponse postJson(String url, String json) throws IOException {
        return postJson(url, null, json);
    }
    /** POST JSON string payload (null/blank -> "{}"). */
    /**
     * POST JSON string payload (null/blank -> "{}").
     */
    public HttpResponse postJson(String url, Map<String, String> headers, String json) throws IOException {
        String payload = (json == null || json.trim().isEmpty()) ? "{}" : json;
        RequestBody body = RequestBody.create(payload, JSON);
@@ -99,12 +105,16 @@
        return execute(rb.build());
    }
    /** POST x-www-form-urlencoded fields. */
    /**
     * POST x-www-form-urlencoded fields.
     */
    public HttpResponse postForm(String url, Map<String, String> formFields) throws IOException {
        return postForm(url, null, formFields);
    }
    /** POST x-www-form-urlencoded fields. */
    /**
     * POST x-www-form-urlencoded fields.
     */
    public HttpResponse postForm(String url, Map<String, String> headers, Map<String, String> formFields) throws IOException {
        FormBody.Builder fb = new FormBody.Builder(DEFAULT_CHARSET);
        if (formFields != null) {
@@ -169,10 +179,21 @@
            this.tookMs = tookMs;
        }
        public int statusCode() { return statusCode; }
        public Headers headers() { return headers; }
        public String body() { return body; }
        public long tookMs() { return tookMs; }
        public int statusCode() {
            return statusCode;
        }
        public Headers headers() {
            return headers;
        }
        public String body() {
            return body;
        }
        public long tookMs() {
            return tookMs;
        }
        public boolean is2xx() {
            return statusCode >= 200 && statusCode < 300;
@@ -219,7 +240,9 @@
            return this;
        }
        /** Trust ALL certificates. ONLY for internal testing/self-signed endpoints. */
        /**
         * Trust ALL certificates. ONLY for internal testing/self-signed endpoints.
         */
        public Builder trustAllSsl(boolean enable) {
            this.trustAllSsl = enable;
            return this;
@@ -250,9 +273,18 @@
        TrustAll() {
            try {
                this.trustManager = new X509TrustManager() {
                    @Override public void checkClientTrusted(X509Certificate[] chain, String authType) { }
                    @Override public void checkServerTrusted(X509Certificate[] chain, String authType) { }
                    @Override public X509Certificate[] getAcceptedIssuers() { return new X509Certificate[0]; }
                    @Override
                    public void checkClientTrusted(X509Certificate[] chain, String authType) {
                    }
                    @Override
                    public void checkServerTrusted(X509Certificate[] chain, String authType) {
                    }
                    @Override
                    public X509Certificate[] getAcceptedIssuers() {
                        return new X509Certificate[0];
                    }
                };
                SSLContext sslContext = SSLContext.getInstance("TLS");