Browse Source

#644 WxOpenConfigStorage增加setApacheHttpClientBuilder()方法,方便用户修改http请求相关参数

master
007gzs 6 years ago
committed by Binary Wang
parent
commit
82e2371847
3 changed files with 29 additions and 6 deletions
  1. +3
    -0
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenConfigStorage.java
  2. +11
    -1
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java
  3. +15
    -5
      weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceApacheHttpClientImpl.java

+ 3
- 0
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/WxOpenConfigStorage.java View File

@@ -1,6 +1,7 @@
package me.chanjar.weixin.open.api; package me.chanjar.weixin.open.api;


import cn.binarywang.wx.miniapp.config.WxMaConfig; import cn.binarywang.wx.miniapp.config.WxMaConfig;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
import me.chanjar.weixin.mp.api.WxMpConfigStorage; import me.chanjar.weixin.mp.api.WxMpConfigStorage;
import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken; import me.chanjar.weixin.open.bean.WxOpenAuthorizerAccessToken;
import me.chanjar.weixin.open.bean.WxOpenComponentAccessToken; import me.chanjar.weixin.open.bean.WxOpenComponentAccessToken;
@@ -46,6 +47,8 @@ public interface WxOpenConfigStorage {


String getHttpProxyPassword(); String getHttpProxyPassword();


ApacheHttpClientBuilder getApacheHttpClientBuilder();

WxMpConfigStorage getWxMpConfigStorage(String appId); WxMpConfigStorage getWxMpConfigStorage(String appId);


WxMaConfig getWxMaConfig(String appId); WxMaConfig getWxMaConfig(String appId);


+ 11
- 1
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenInMemoryConfigStorage.java View File

@@ -34,6 +34,7 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
private int httpProxyPort; private int httpProxyPort;
private String httpProxyUsername; private String httpProxyUsername;
private String httpProxyPassword; private String httpProxyPassword;
private ApacheHttpClientBuilder apacheHttpClientBuilder;


private Map<String, Token> authorizerRefreshTokens = new Hashtable<>(); private Map<String, Token> authorizerRefreshTokens = new Hashtable<>();
private Map<String, Token> authorizerAccessTokens = new Hashtable<>(); private Map<String, Token> authorizerAccessTokens = new Hashtable<>();
@@ -146,6 +147,15 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {
this.httpProxyPassword = httpProxyPassword; this.httpProxyPassword = httpProxyPassword;
} }


@Override
public ApacheHttpClientBuilder getApacheHttpClientBuilder() {
return apacheHttpClientBuilder;
}

public ApacheHttpClientBuilder setApacheHttpClientBuilder(ApacheHttpClientBuilder apacheHttpClientBuilder) {
return this.apacheHttpClientBuilder = apacheHttpClientBuilder;
}

@Override @Override
public WxMpConfigStorage getWxMpConfigStorage(String appId) { public WxMpConfigStorage getWxMpConfigStorage(String appId) {
return new WxOpenInnerConfigStorage(this, appId); return new WxOpenInnerConfigStorage(this, appId);
@@ -448,7 +458,7 @@ public class WxOpenInMemoryConfigStorage implements WxOpenConfigStorage {


@Override @Override
public ApacheHttpClientBuilder getApacheHttpClientBuilder() { public ApacheHttpClientBuilder getApacheHttpClientBuilder() {
return null;
return wxOpenConfigStorage.getApacheHttpClientBuilder();
} }






+ 15
- 5
weixin-java-open/src/main/java/me/chanjar/weixin/open/api/impl/WxOpenServiceApacheHttpClientImpl.java View File

@@ -4,7 +4,9 @@ import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.HttpType; import me.chanjar.weixin.common.util.http.HttpType;
import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor; import me.chanjar.weixin.common.util.http.SimpleGetRequestExecutor;
import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor; import me.chanjar.weixin.common.util.http.SimplePostRequestExecutor;
import me.chanjar.weixin.common.util.http.apache.ApacheHttpClientBuilder;
import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder; import me.chanjar.weixin.common.util.http.apache.DefaultApacheHttpClientBuilder;
import me.chanjar.weixin.mp.api.WxMpConfigStorage;
import me.chanjar.weixin.open.api.WxOpenConfigStorage; import me.chanjar.weixin.open.api.WxOpenConfigStorage;
import org.apache.http.HttpHost; import org.apache.http.HttpHost;
import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.CloseableHttpClient;
@@ -21,14 +23,22 @@ public class WxOpenServiceApacheHttpClientImpl extends WxOpenServiceAbstractImpl
@Override @Override
public void initHttp() { public void initHttp() {
WxOpenConfigStorage configStorage = this.getWxOpenConfigStorage(); WxOpenConfigStorage configStorage = this.getWxOpenConfigStorage();
if (configStorage.getHttpProxyHost() != null && configStorage.getHttpProxyPort() > 0) {
this.httpProxy = new HttpHost(configStorage.getHttpProxyHost(), configStorage.getHttpProxyPort());
ApacheHttpClientBuilder apacheHttpClientBuilder = configStorage.getApacheHttpClientBuilder();
if (null == apacheHttpClientBuilder) {
apacheHttpClientBuilder = DefaultApacheHttpClientBuilder.get();
} }
this.httpClient = DefaultApacheHttpClientBuilder.get()
.httpProxyHost(configStorage.getHttpProxyHost())
apacheHttpClientBuilder.httpProxyHost(configStorage.getHttpProxyHost())
.httpProxyPort(configStorage.getHttpProxyPort()) .httpProxyPort(configStorage.getHttpProxyPort())
.httpProxyUsername(configStorage.getHttpProxyUsername()) .httpProxyUsername(configStorage.getHttpProxyUsername())
.httpProxyPassword(configStorage.getHttpProxyPassword()).build();
.httpProxyPassword(configStorage.getHttpProxyPassword());

if (configStorage.getHttpProxyHost() != null && configStorage.getHttpProxyPort() > 0) {
this.httpProxy = new HttpHost(configStorage.getHttpProxyHost(), configStorage.getHttpProxyPort());
}

this.httpClient = apacheHttpClientBuilder.build();

} }


@Override @Override


Loading…
Cancel
Save