826220679@qq.com
7 小时以前 69b40096cb0ae965f2a3e92672b880edfe7d04d2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
package login;
 
/**
 * API配置类
 * 统一管理API地址、超时时间等配置
 */
public class ApiConfig {
    
    private static final String DEFAULT_BASE_URL = "http://39.99.43.227:9000";
    private static final int DEFAULT_CONNECT_TIMEOUT = 30000; // 30秒
    private static final int DEFAULT_READ_TIMEOUT = 60000;    // 60秒
    private static final String DEFAULT_USER_AGENT = "LoginClient/1.0";
    
    private final String baseUrl;
    private final int connectTimeout;
    private final int readTimeout;
    private final String userAgent;
    
    /**
     * 私有构造函数
     */
    private ApiConfig(String baseUrl, int connectTimeout, int readTimeout, String userAgent) {
        this.baseUrl = baseUrl != null ? baseUrl : DEFAULT_BASE_URL;
        this.connectTimeout = connectTimeout > 0 ? connectTimeout : DEFAULT_CONNECT_TIMEOUT;
        this.readTimeout = readTimeout > 0 ? readTimeout : DEFAULT_READ_TIMEOUT;
        this.userAgent = userAgent != null ? userAgent : DEFAULT_USER_AGENT;
    }
    
    /**
     * 获取默认配置
     */
    public static ApiConfig getDefault() {
        return new ApiConfig(DEFAULT_BASE_URL, DEFAULT_CONNECT_TIMEOUT, DEFAULT_READ_TIMEOUT, DEFAULT_USER_AGENT);
    }
    
    /**
     * 创建自定义配置
     */
    public static Builder builder() {
        return new Builder();
    }
    
    public String getBaseUrl() {
        return baseUrl;
    }
    
    public int getConnectTimeout() {
        return connectTimeout;
    }
    
    public int getReadTimeout() {
        return readTimeout;
    }
    
    public String getUserAgent() {
        return userAgent;
    }
    
    /**
     * 配置构建器
     */
    public static class Builder {
        private String baseUrl;
        private int connectTimeout;
        private int readTimeout;
        private String userAgent;
        
        public Builder baseUrl(String baseUrl) {
            this.baseUrl = baseUrl;
            return this;
        }
        
        public Builder connectTimeout(int connectTimeout) {
            this.connectTimeout = connectTimeout;
            return this;
        }
        
        public Builder readTimeout(int readTimeout) {
            this.readTimeout = readTimeout;
            return this;
        }
        
        public Builder userAgent(String userAgent) {
            this.userAgent = userAgent;
            return this;
        }
        
        public ApiConfig build() {
            return new ApiConfig(baseUrl, connectTimeout, readTimeout, userAgent);
        }
    }
}