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