Skip to content

Commit 65f31c4

Browse files
author
shelocksliu
committed
支持代理和超时时间等参数设置
1 parent 45b2608 commit 65f31c4

File tree

2 files changed

+79
-16
lines changed

2 files changed

+79
-16
lines changed

src/main/java/com/tencent/xinge/XingeApp.java

Lines changed: 71 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,7 @@
11
package com.tencent.xinge;
22

3-
import com.google.common.base.Charsets;
43
import java.io.*;
5-
import java.net.HttpURLConnection;
6-
import java.net.MalformedURLException;
7-
import java.net.URL;
8-
import java.security.KeyManagementException;
9-
import java.security.NoSuchAlgorithmException;
4+
import java.net.Proxy;
105
import java.util.concurrent.TimeUnit;
116

127
import com.tencent.xinge.push.app.PushAppRequest;
@@ -16,8 +11,6 @@
1611

1712
import com.tencent.xinge.api.RESTAPIV3;
1813

19-
import javax.net.ssl.*;
20-
2114
/**
2215
* 提供V3接口<br>
2316
* 1. v3中appId是String类型,v2中是long <br>
@@ -36,10 +29,7 @@ public class XingeApp {
3629

3730
private RESTAPIV3 restapiV3 = new RESTAPIV3();
3831

39-
private OkHttpClient client = new OkHttpClient.Builder()
40-
.connectTimeout(10, TimeUnit.SECONDS)//设置连接超时时间
41-
.readTimeout(10, TimeUnit.SECONDS)//设置读取超时时间
42-
.build();
32+
private OkHttpClient client;
4333

4434
/**
4535
* HTTP Header Authorization 的值:Basic base64_auth_string<br>
@@ -49,21 +39,40 @@ public class XingeApp {
4939
* @param appId appId
5040
* @param secretKey secretKey
5141
*/
52-
public XingeApp(String appId, String secretKey) {
42+
private XingeApp(String appId, String secretKey) {
5343
this.authString = appId + ":" + secretKey;
5444

5545
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
5646
authStringEnc = new String(authEncBytes);
47+
48+
client = new OkHttpClient.Builder()
49+
.connectTimeout(10, TimeUnit.SECONDS)//设置连接超时时间
50+
.readTimeout(10, TimeUnit.SECONDS)//设置读取超时时间
51+
.build();
52+
}
53+
54+
private XingeApp(Builder builder){
55+
this.authString = builder.appId + ":" + builder.secretKey;
56+
57+
byte[] authEncBytes = Base64.encodeBase64(authString.getBytes());
58+
authStringEnc = new String(authEncBytes);
59+
60+
client = new OkHttpClient.Builder()
61+
.proxy(builder.proxy)
62+
.connectTimeout(builder.connectTimeOut, TimeUnit.SECONDS)//设置连接超时时间
63+
.readTimeout(builder.readTimeOut, TimeUnit.SECONDS)//设置读取超时时间
64+
.build();
5765
}
5866

5967

6068

6169
/**
6270
* @param authStringEnc base64_auth_string
6371
*/
72+
/**
6473
public XingeApp(String authStringEnc) {
6574
this.authStringEnc = authStringEnc;
66-
}
75+
}**/
6776

6877
/**
6978
* 设置信鸽api http 服务器地址
@@ -140,5 +149,53 @@ public static String stringifyError(Throwable error) {
140149
return result.toString();
141150
}
142151

152+
public static class Builder {
153+
private String appId;
154+
private String secretKey;
155+
private Proxy proxy = Proxy.NO_PROXY;
156+
private int connectTimeOut;
157+
private int readTimeOut;
158+
159+
public Builder() {
160+
proxy = Proxy.NO_PROXY;
161+
connectTimeOut = 10;
162+
readTimeOut = 10;
163+
}
164+
165+
public Builder appId(String appId) {
166+
this.appId = appId;
167+
return this;
168+
}
169+
170+
public Builder secretKey(String secretKey) {
171+
this.secretKey = secretKey;
172+
return this;
173+
}
174+
175+
public Builder proxy(Proxy proxy) {
176+
this.proxy = proxy;
177+
return this;
178+
}
179+
180+
public Builder connectTimeOut(int connectTimeOut) {
181+
this.connectTimeOut = connectTimeOut;
182+
return this;
183+
}
184+
185+
public Builder readTimeOut(int readTimeOut) {
186+
this.readTimeOut = readTimeOut;
187+
return this;
188+
}
189+
190+
public XingeApp build() {
191+
if (appId == null || secretKey == null) {
192+
throw new IllegalArgumentException("Please set appId and secret key.");
193+
}
194+
195+
return new XingeApp(this);
196+
}
197+
198+
}
199+
143200

144201
}

src/test/java/com/tencent/xinge/BaseXgTest.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ public class BaseXgTest {
1414

1515
@Before
1616
public void init() {
17-
xingeAndroid = new XingeApp(appIdAndroid, secretKeyAndroid);
18-
xingeIOS = new XingeApp(appIdIOS, secretKeyIOS);
17+
xingeAndroid = new XingeApp.Builder()
18+
.appId(appIdAndroid)
19+
.secretKey(secretKeyAndroid)
20+
.build();
21+
xingeIOS = new XingeApp.Builder()
22+
.appId(appIdIOS)
23+
.secretKey(secretKeyIOS)
24+
.build();
1925
}
2026
}

0 commit comments

Comments
 (0)