diff --git a/.gitignore b/.gitignore
index d0ab107..bb49d4f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,3 +26,4 @@ replay_pid*
*.iml
.idea
+target/
diff --git a/README.md b/README.md
index 69003a6..99b1145 100644
--- a/README.md
+++ b/README.md
@@ -15,13 +15,13 @@
## 1. 集成
引入sdk包
```xml
-
+
io.github.jpush
jiguang-sdk
- 5.1.3
+ 5.1.4
```
@@ -40,7 +40,7 @@
```
## 2. Api
创建api对象
-> 可根据自身情况设置host、proxy和loggerLevel
+> 可根据自身情况设置client、host和loggerLevel
```java
// appKey和masterSecret在极光官网-应用控制台获取
PushApi pushApi = new PushApi.Builder()
@@ -70,6 +70,16 @@
.setGroupMasterSecret(groupMasterSecret)
.setLoggerLevel(Logger.Level.FULL)
.build();
+
+ // 设置client,更多okhttp配置请参考:https://square.github.io/okhttp/5.x/okhttp/okhttp3/-ok-http-client/-builder/index.html
+ okhttp3.OkHttpClient okHttpClient = new okhttp3.OkHttpClient().newBuilder()
+ .connectTimeout(5, TimeUnit.SECONDS) // 设置连接超时
+ .build();
+ PushApi pushApi = new PushApi.Builder()
+ .setClient(new OkHttpClient(okHttpClient))
+ .setAppKey(appKey)
+ .setMasterSecret(masterSecret)
+ .build();
```
使用api示例
* [PushApi](https://github.com/jpush/jiguang-sdk-java/blob/main/example-for-spring/src/test/java/cn/jiguang/app/api/PushApiTest.java)
diff --git a/example-for-spring/pom.xml b/example-for-spring/pom.xml
index 0084b63..f263cfd 100644
--- a/example-for-spring/pom.xml
+++ b/example-for-spring/pom.xml
@@ -13,7 +13,7 @@
io.github.jpush
example-for-spring
- 5.1.3
+ 5.1.4
8
@@ -26,7 +26,7 @@
io.github.jpush
jiguang-sdk
- 5.1.3
+ 5.1.4
diff --git a/example-for-spring/src/main/java/cn/jiguang/app/config/JiguangApiConfig.java b/example-for-spring/src/main/java/cn/jiguang/app/config/JiguangApiConfig.java
index 7636100..b396ef7 100644
--- a/example-for-spring/src/main/java/cn/jiguang/app/config/JiguangApiConfig.java
+++ b/example-for-spring/src/main/java/cn/jiguang/app/config/JiguangApiConfig.java
@@ -2,10 +2,16 @@
import cn.jiguang.sdk.api.*;
import feign.Logger;
+import feign.okhttp.OkHttpClient;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import java.util.concurrent.TimeUnit;
+
+@Slf4j
@Configuration
public class JiguangApiConfig {
@@ -27,9 +33,23 @@ public class JiguangApiConfig {
@Value("${jiguang.api.group-master-secret}")
private String groupMasterSecret;
+ // sdk默认使用的feign-okhttp,下面是设置示例
+ // 更多okhttp配置请参考:https://square.github.io/okhttp/5.x/okhttp/okhttp3/-ok-http-client/-builder/index.html
+ @Bean("okHttpClient")
+ public OkHttpClient okHttpClient() {
+ okhttp3.OkHttpClient okHttpClient = new okhttp3.OkHttpClient().newBuilder()
+ // .proxy() // 设置代理,如果有需要
+ .connectTimeout(5, TimeUnit.SECONDS) // 设置连接超时
+ .build();
+ OkHttpClient okHttpClient1 = new OkHttpClient(okHttpClient);
+ log.info("okHttpClient1:{}", okHttpClient1);
+ return okHttpClient1;
+ }
+
@Bean
- public PushApi pushApi() {
+ public PushApi pushApi(@Qualifier("okHttpClient") OkHttpClient okHttpClient) {
return new PushApi.Builder()
+ .setClient(okHttpClient) // 如果不配置client,则使用默认的okHttpClient
.setAppKey(appKey)
.setMasterSecret(masterSecret)
.build();
diff --git a/jiguang-sdk/pom.xml b/jiguang-sdk/pom.xml
index 3744c18..41a5d1c 100644
--- a/jiguang-sdk/pom.xml
+++ b/jiguang-sdk/pom.xml
@@ -7,13 +7,13 @@
io.github.jpush
jiguang-sdk-java
- 5.1.3
+ 5.1.4
../pom.xml
io.github.jpush
jiguang-sdk
- 5.1.3
+ 5.1.4
jar
diff --git a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/AdminApi.java b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/AdminApi.java
index 8317094..daba46a 100644
--- a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/AdminApi.java
+++ b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/AdminApi.java
@@ -5,6 +5,7 @@
import cn.jiguang.sdk.codec.ApiDecoder;
import cn.jiguang.sdk.codec.ApiEncoder;
import cn.jiguang.sdk.codec.ApiErrorDecoder;
+import feign.Client;
import feign.Feign;
import feign.Logger;
import feign.auth.BasicAuthRequestInterceptor;
@@ -12,8 +13,6 @@
import feign.slf4j.Slf4jLogger;
import lombok.NonNull;
-import java.net.Proxy;
-
public class AdminApi {
private final AdminClient adminClient;
@@ -36,8 +35,8 @@ public CertificateUploadResult uploadCertificate(@NonNull String appKey, @NonNul
public static class Builder {
+ private Client client = new OkHttpClient();
private String host = "https://admin.jpush.cn";
- private Proxy proxy;
private String devKey;
private String devSecret;
private Logger.Level loggerLevel = Logger.Level.BASIC;
@@ -47,8 +46,8 @@ public Builder setHost(@NonNull String host) {
return this;
}
- public Builder setProxy(@NonNull Proxy proxy) {
- this.proxy = proxy;
+ public Builder setClient(@NonNull Client client) {
+ this.client = client;
return this;
}
@@ -68,12 +67,8 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
}
public AdminApi build() {
- okhttp3.OkHttpClient.Builder delegateBuilder = new okhttp3.OkHttpClient().newBuilder();
- if (proxy != null) {
- delegateBuilder.proxy(proxy);
- }
AdminClient adminClient = Feign.builder()
- .client(new OkHttpClient(delegateBuilder.build()))
+ .client(client)
.requestInterceptor(new BasicAuthRequestInterceptor(devKey, devSecret))
.encoder(new ApiEncoder())
.decoder(new ApiDecoder())
diff --git a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/DeviceApi.java b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/DeviceApi.java
index 93a6268..6e65be5 100644
--- a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/DeviceApi.java
+++ b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/DeviceApi.java
@@ -6,6 +6,7 @@
import cn.jiguang.sdk.codec.ApiEncoder;
import cn.jiguang.sdk.codec.ApiErrorDecoder;
import cn.jiguang.sdk.enums.platform.Platform;
+import feign.Client;
import feign.Feign;
import feign.Logger;
import feign.auth.BasicAuthRequestInterceptor;
@@ -13,8 +14,6 @@
import feign.slf4j.Slf4jLogger;
import lombok.NonNull;
-import java.net.Proxy;
-
public class DeviceApi {
private final DeviceClient deviceClient;
@@ -77,19 +76,19 @@ public DeviceStatusGetResult getDeviceStatus() {
public static class Builder {
+ private Client client = new OkHttpClient();
private String host = "https://device.jpush.cn";
- private Proxy proxy;
private String appKey;
private String masterSecret;
private Logger.Level loggerLevel = Logger.Level.BASIC;
- public Builder setHost(@NonNull String host) {
- this.host = host;
+ public Builder setClient(@NonNull Client client) {
+ this.client = client;
return this;
}
- public Builder setProxy(@NonNull Proxy proxy) {
- this.proxy = proxy;
+ public Builder setHost(@NonNull String host) {
+ this.host = host;
return this;
}
@@ -109,12 +108,8 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
}
public DeviceApi build() {
- okhttp3.OkHttpClient.Builder delegateBuilder = new okhttp3.OkHttpClient().newBuilder();
- if (proxy != null) {
- delegateBuilder.proxy(proxy);
- }
DeviceClient deviceClient = Feign.builder()
- .client(new OkHttpClient(delegateBuilder.build()))
+ .client(client)
.requestInterceptor(new BasicAuthRequestInterceptor(appKey, masterSecret))
.encoder(new ApiEncoder())
.decoder(new ApiDecoder())
diff --git a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/GroupPushApi.java b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/GroupPushApi.java
index 00b0b5f..d0007f0 100644
--- a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/GroupPushApi.java
+++ b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/GroupPushApi.java
@@ -6,6 +6,7 @@
import cn.jiguang.sdk.codec.ApiDecoder;
import cn.jiguang.sdk.codec.ApiEncoder;
import cn.jiguang.sdk.codec.ApiErrorDecoder;
+import feign.Client;
import feign.Feign;
import feign.Logger;
import feign.auth.BasicAuthRequestInterceptor;
@@ -13,8 +14,6 @@
import feign.slf4j.Slf4jLogger;
import lombok.NonNull;
-import java.net.Proxy;
-
public class GroupPushApi {
private final GroupPushClient groupPushClient;
@@ -29,19 +28,19 @@ public GroupPushSendResult send(@NonNull GroupPushSendParam param) {
public static class Builder {
+ private Client client = new OkHttpClient();
private String host = "https://api.jpush.cn";
- private Proxy proxy;
private String groupKey;
private String groupMasterSecret;
private Logger.Level loggerLevel = Logger.Level.BASIC;
- public Builder setHost(@NonNull String host) {
- this.host = host;
+ public Builder setClient(@NonNull Client client) {
+ this.client = client;
return this;
}
- public Builder setProxy(@NonNull Proxy proxy) {
- this.proxy = proxy;
+ public Builder setHost(@NonNull String host) {
+ this.host = host;
return this;
}
@@ -61,12 +60,8 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
}
public GroupPushApi build() {
- okhttp3.OkHttpClient.Builder delegateBuilder = new okhttp3.OkHttpClient().newBuilder();
- if (proxy != null) {
- delegateBuilder.proxy(proxy);
- }
GroupPushClient groupPushClient = Feign.builder()
- .client(new OkHttpClient(delegateBuilder.build()))
+ .client(client)
.requestInterceptor(new BasicAuthRequestInterceptor("group-" + groupKey, groupMasterSecret))
.encoder(new ApiEncoder())
.decoder(new ApiDecoder())
diff --git a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/PushApi.java b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/PushApi.java
index c97f71d..3d4bfd8 100644
--- a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/PushApi.java
+++ b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/PushApi.java
@@ -15,6 +15,7 @@
import cn.jiguang.sdk.codec.ApiDecoder;
import cn.jiguang.sdk.codec.ApiEncoder;
import cn.jiguang.sdk.codec.ApiErrorDecoder;
+import feign.Client;
import feign.Feign;
import feign.Logger;
import feign.auth.BasicAuthRequestInterceptor;
@@ -22,8 +23,6 @@
import feign.slf4j.Slf4jLogger;
import lombok.NonNull;
-import java.net.Proxy;
-
public class PushApi {
private final PushClient pushClient;
@@ -120,19 +119,19 @@ public PushSendResult sendByFile(Object param) {
public static class Builder {
+ private Client client = new OkHttpClient();
private String host = "https://api.jpush.cn";
- private Proxy proxy;
private String appKey;
private String masterSecret;
private Logger.Level loggerLevel = Logger.Level.BASIC;
- public Builder setHost(@NonNull String host) {
- this.host = host;
+ public Builder setClient(@NonNull Client client) {
+ this.client = client;
return this;
}
- public Builder setProxy(@NonNull Proxy proxy) {
- this.proxy = proxy;
+ public Builder setHost(@NonNull String host) {
+ this.host = host;
return this;
}
@@ -152,12 +151,8 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
}
public PushApi build() {
- okhttp3.OkHttpClient.Builder delegateBuilder = new okhttp3.OkHttpClient().newBuilder();
- if (proxy != null) {
- delegateBuilder.proxy(proxy);
- }
PushClient pushClient = Feign.builder()
- .client(new OkHttpClient(delegateBuilder.build()))
+ .client(client)
.requestInterceptor(new BasicAuthRequestInterceptor(appKey, masterSecret))
.encoder(new ApiEncoder())
.decoder(new ApiDecoder())
diff --git a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/ReportApi.java b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/ReportApi.java
index 20455ad..c4b3115 100644
--- a/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/ReportApi.java
+++ b/jiguang-sdk/src/main/java/cn/jiguang/sdk/api/ReportApi.java
@@ -5,6 +5,7 @@
import cn.jiguang.sdk.codec.ApiDecoder;
import cn.jiguang.sdk.codec.ApiEncoder;
import cn.jiguang.sdk.codec.ApiErrorDecoder;
+import feign.Client;
import feign.Feign;
import feign.Logger;
import feign.auth.BasicAuthRequestInterceptor;
@@ -12,7 +13,6 @@
import feign.slf4j.Slf4jLogger;
import lombok.NonNull;
-import java.net.Proxy;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;
@@ -43,19 +43,19 @@ public UserDetailGetResult getUserDetail(@NonNull LocalDate startDate, @NonNull
public static class Builder {
+ private Client client = new OkHttpClient();
private String host = "https://report.jpush.cn";
- private Proxy proxy;
private String appKey;
private String masterSecret;
private Logger.Level loggerLevel = Logger.Level.BASIC;
- public Builder setHost(@NonNull String host) {
- this.host = host;
+ public Builder setClient(@NonNull Client client) {
+ this.client = client;
return this;
}
- public Builder setProxy(@NonNull Proxy proxy) {
- this.proxy = proxy;
+ public Builder setHost(@NonNull String host) {
+ this.host = host;
return this;
}
@@ -75,12 +75,8 @@ public Builder setLoggerLevel(@NonNull Logger.Level loggerLevel) {
}
public ReportApi build() {
- okhttp3.OkHttpClient.Builder delegateBuilder = new okhttp3.OkHttpClient().newBuilder();
- if (proxy != null) {
- delegateBuilder.proxy(proxy);
- }
ReportClient reportClient = Feign.builder()
- .client(new OkHttpClient(delegateBuilder.build()))
+ .client(client)
.requestInterceptor(new BasicAuthRequestInterceptor(appKey, masterSecret))
.encoder(new ApiEncoder())
.decoder(new ApiDecoder())
diff --git a/pom.xml b/pom.xml
index fe125c1..6240eeb 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
io.github.jpush
jiguang-sdk-java
- 5.1.3
+ 5.1.4
pom
Jiguang SDK For Rest Api