🎨 升级部分依赖版本,优化代码,部分代码增加泛型参数

This commit is contained in:
altusea
2025-05-13 15:56:14 +08:00
committed by GitHub
parent a7b007f853
commit 063fbb7f19
263 changed files with 559 additions and 607 deletions

View File

@@ -2,9 +2,6 @@ package me.chanjar.weixin.mp.api;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.bean.card.CardUpdateResult;
import me.chanjar.weixin.mp.bean.card.membercard.MemberCardActivateUserFormRequest;
import me.chanjar.weixin.mp.bean.card.membercard.MemberCardActivateUserFormResult;
import me.chanjar.weixin.mp.bean.card.membercard.MemberCardUpdateRequest;
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateResult;
import me.chanjar.weixin.mp.bean.card.membercard.*;

View File

@@ -528,7 +528,7 @@ public interface WxMpService extends WxService {
*
* @return RequestHttp对象 request http
*/
RequestHttp getRequestHttp();
RequestHttp<?, ?> getRequestHttp();
/**
* 返回群发消息相关接口方法的实现类对象,以方便调用其各个接口.

View File

@@ -11,11 +11,9 @@ import java.util.List;
* 门店管理的相关接口代码.
* Created by Binary Wang on 2016-09-23.
*
* @param <H> the type parameter
* @param <P> the type parameter
* @author <a href="https://github.com/binarywang">Binary Wang</a>
*/
public interface WxMpStoreService<H, P> {
public interface WxMpStoreService {
/**
* <pre>
* 创建门店

View File

@@ -188,7 +188,7 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH
return SHA1.gen(this.getWxMpConfigStorage().getToken(), timestamp, nonce)
.equals(signature);
} catch (Exception e) {
log.error("Checking signature failed, and the reason is :" + e.getMessage());
log.error("Checking signature failed, and the reason is :{}", e.getMessage());
return false;
}
}
@@ -649,7 +649,7 @@ public abstract class BaseWxMpServiceImpl<H, P> implements WxMpService, RequestH
}
@Override
public RequestHttp getRequestHttp() {
public RequestHttp<H, P> getRequestHttp() {
return this;
}

View File

@@ -166,7 +166,7 @@ public class WxMpCardServiceImpl implements WxMpCardService {
if (!"0".equals(errcode)) {
String errmsg = json.get("errmsg").getAsString();
throw new WxErrorException(WxError.builder()
.errorCode(Integer.valueOf(errcode)).errorMsg(errmsg)
.errorCode(Integer.parseInt(errcode)).errorMsg(errmsg)
.build());
}
@@ -257,7 +257,7 @@ public class WxMpCardServiceImpl implements WxMpCardService {
@Override
public WxMpCardCodeDepositResult cardCodeDeposit(String cardId, List<String> codeList) throws WxErrorException {
checkCardId(cardId);
if (codeList.size() == 0 || codeList.size() > 100) {
if (codeList.isEmpty() || codeList.size() > 100) {
throw new WxErrorException(WxError.builder().errorCode(40109).errorMsg("code数量为0或者code数量超过100个").build());
}
JsonObject param = new JsonObject();
@@ -283,7 +283,7 @@ public class WxMpCardServiceImpl implements WxMpCardService {
@Override
public WxMpCardCodeCheckcodeResult cardCodeCheckcode(String cardId, List<String> codeList) throws WxErrorException {
checkCardId(cardId);
if (codeList.size() == 0 || codeList.size() > 100) {
if (codeList.isEmpty() || codeList.size() > 100) {
throw new WxErrorException(WxError.builder().errorCode(40109).errorMsg("code数量为0或者code数量超过100个").build());
}
JsonObject param = new JsonObject();

View File

@@ -121,7 +121,7 @@ public class WxMpGuideServiceImpl implements WxMpGuideService {
@Override
public void setGuideAcctConfig(boolean isDelete, List<String> blackKeyWord, String guideAutoReply) throws WxErrorException {
JsonObject jsonObject1 = null;
if (blackKeyWord != null && blackKeyWord.size() > 0) {
if (blackKeyWord != null && !blackKeyWord.isEmpty()) {
jsonObject1 = new JsonObject();
JsonArray jsonArray = new JsonArray();
blackKeyWord.forEach(jsonArray::add);

View File

@@ -91,7 +91,7 @@ public class WxMpGuideTagServiceImpl implements WxMpGuideTagService {
new TypeToken<List<String>>() {
}.getType());
if (isExclude) {
if (list.size() > 0) {
if (!list.isEmpty()) {
if (list.get(list.size() - 1).contains("\n")) {
list.remove(list.size() - 1);
}

View File

@@ -144,7 +144,7 @@ public class WxMpKefuServiceImpl implements WxMpKefuService {
if (result != null && result.getNumber() == number) {
Long msgId = result.getMsgId();
WxMpKfMsgList followingResult = this.kfMsgList(startTime, endTime, msgId, number);
while (followingResult != null && followingResult.getRecords().size() > 0) {
while (followingResult != null && !followingResult.getRecords().isEmpty()) {
result.getRecords().addAll(followingResult.getRecords());
result.setNumber(result.getNumber() + followingResult.getNumber());
result.setMsgId(followingResult.getMsgId());

View File

@@ -24,11 +24,6 @@ import me.chanjar.weixin.mp.bean.card.AdvancedInfo;
import me.chanjar.weixin.mp.bean.card.BaseInfo;
import me.chanjar.weixin.mp.bean.card.CardUpdateResult;
import me.chanjar.weixin.mp.bean.card.DateInfo;
import me.chanjar.weixin.mp.bean.card.membercard.MemberCard;
import me.chanjar.weixin.mp.bean.card.membercard.MemberCardActivateUserFormRequest;
import me.chanjar.weixin.mp.bean.card.membercard.MemberCardActivateUserFormResult;
import me.chanjar.weixin.mp.bean.card.membercard.MemberCardCreateRequest;
import me.chanjar.weixin.mp.bean.card.membercard.MemberCardUpdateRequest;
import me.chanjar.weixin.mp.bean.card.WxMpCardCreateResult;
import me.chanjar.weixin.mp.bean.card.enums.BusinessServiceType;
import me.chanjar.weixin.mp.bean.card.enums.CardColor;

View File

@@ -12,7 +12,6 @@ import me.chanjar.weixin.mp.api.WxMpMerchantInvoiceService;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.invoice.merchant.*;
import me.chanjar.weixin.mp.enums.WxMpApiUrl;
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
import java.util.Map;

View File

@@ -2,7 +2,6 @@ package me.chanjar.weixin.mp.api.impl;
import com.google.gson.JsonObject;
import lombok.RequiredArgsConstructor;
import me.chanjar.weixin.common.error.WxError;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.mp.api.WxMpQrcodeService;
import me.chanjar.weixin.mp.api.WxMpService;

View File

@@ -86,7 +86,7 @@ public class WxMpStoreServiceImpl implements WxMpStoreService {
if (list.getTotalCount() > limit) {
int begin = limit;
WxMpStoreListResult followingList = this.list(begin, limit);
while (followingList.getBusinessList().size() > 0) {
while (!followingList.getBusinessList().isEmpty()) {
stores.addAll(followingList.getBusinessList());
begin += limit;
if (begin >= list.getTotalCount()) {

View File

@@ -46,11 +46,7 @@ public class WxMpWifiServiceImpl implements WxMpWifiService {
if (password != null) {
json.addProperty("password", password);
}
try {
this.wxMpService.post(BIZWIFI_SHOP_UPDATE, json.toString());
return true;
} catch (WxErrorException e) {
throw e;
}
this.wxMpService.post(BIZWIFI_SHOP_UPDATE, json.toString());
return true;
}
}

View File

@@ -26,7 +26,7 @@ public class WxMpShakeInfoResult implements Serializable {
}
@Data
public class ShakeInfoData implements Serializable {
public static class ShakeInfoData implements Serializable {
private static final long serialVersionUID = -4828142206067489488L;
private String page_id;

View File

@@ -9,7 +9,7 @@ public enum BusinessServiceType {
BIZ_SERVICE_WITH_PET("可带宠物"),
BIZ_SERVICE_FREE_WIFI("可带宠物");
private String description;
private final String description;
BusinessServiceType(String description) {
this.description = description;

View File

@@ -9,7 +9,7 @@ public enum CardCodeType {
CODE_TYPE_BARCODE("一维码"),
CODE_TYPE_QRCODE("二维码");
private String description;
private final String description;
CardCodeType(String description) {
this.description = description;

View File

@@ -22,7 +22,7 @@ public enum CardColor {
Color101("#cf3e36"),
Color102("#5E6671");
private String type;
private final String type;
CardColor(String type) {
this.type = type;

View File

@@ -11,7 +11,7 @@ public enum CardFieldType {
CUSTOM_FIELD("自定义选项"),
RICH_FIELD("自定义富文本类型");
private String description;
private final String description;
CardFieldType(String description) {
this.description = description;

View File

@@ -11,7 +11,7 @@ public enum CardRichFieldType {
FORM_FIELD_SELECT("自定义选择项"),
FORM_FIELD_CHECK_BOX("自定义多选");
private String description;
private final String description;
CardRichFieldType(String description) {
this.description = description;

View File

@@ -9,7 +9,7 @@ public enum CardSceneType {
SCENE_IVR("自动回复"),
SCENE_CARD_CUSTOM_CELL("卡券自定义cell");
private String description;
private final String description;
CardSceneType(String description) {
this.description = description;

View File

@@ -7,7 +7,7 @@ public enum CardStatusType {
CARD_STATUS_DELETE("卡券被商户删除"),
CARD_STATUS_DISPATCH("在公众平台投放过的卡券");
private String description;
private final String description;
CardStatusType(String description) {
this.description = description;

View File

@@ -23,7 +23,7 @@ public enum CardWechatFieldType {
USER_FORM_INFO_FLAG_INCOME("收入"),
USER_FORM_INFO_FLAG_HABIT("兴趣爱好");
private String description;
private final String description;
CardWechatFieldType(String description) {
this.description = description;

View File

@@ -14,7 +14,7 @@ public enum CustomFieldNameType {
FIELD_NAME_TYPE_SET_POINTS("集点"),
FIELD_NAME_TYPE_TIMS("次数");
private String description;
private final String description;
CustomFieldNameType(String description) {
this.description = description;

View File

@@ -5,7 +5,7 @@ public enum DateInfoType {
DATE_TYPE_FIX_TIME_RANGE("固定日期"),
DATE_TYPE_FIX_TERM("固定时长");
private String description;
private final String description;
DateInfoType(String description) {
this.description = description;

View File

@@ -21,7 +21,7 @@ public class BaseResp extends AbstractDeviceBean {
private String errMsg;
@Data
private class BaseInfo {
private static class BaseInfo {
@SerializedName("device_type")
private String deviceType;

View File

@@ -21,7 +21,7 @@ public enum AiLangType {
*/
en_US("en_US");
private String code;
private final String code;
AiLangType(String code) {
this.code = code;

View File

@@ -14,7 +14,7 @@ public enum WxCardType {
GIFT("GIFT"),
GENERAL_COUPON("GENERAL_COUPON");
private String code;
private final String code;
WxCardType(String code) {
this.code = code;

View File

@@ -5,12 +5,7 @@ package me.chanjar.weixin.mp.util;
* created on 2019-03-20 22:06
*/
public class WxMpConfigStorageHolder {
private static final ThreadLocal<String> THREAD_LOCAL = new ThreadLocal<String>() {
@Override
protected String initialValue() {
return "default";
}
};
private static final ThreadLocal<String> THREAD_LOCAL = ThreadLocal.withInitial(() -> "default");
public static String get() {
return THREAD_LOCAL.get();

View File

@@ -17,8 +17,6 @@
*/
package me.chanjar.weixin.mp.util.crypto;
import com.google.common.base.CharMatcher;
import com.google.common.io.BaseEncoding;
import me.chanjar.weixin.mp.config.WxMpConfigStorage;
import org.apache.commons.lang3.StringUtils;

View File

@@ -21,7 +21,7 @@ import java.util.Map;
* Created by ecoolper on 2017/5/5.
*/
public class MaterialDeleteApacheHttpRequestExecutor extends MaterialDeleteRequestExecutor<CloseableHttpClient, HttpHost> {
public MaterialDeleteApacheHttpRequestExecutor(RequestHttp requestHttp) {
public MaterialDeleteApacheHttpRequestExecutor(RequestHttp<CloseableHttpClient, HttpHost> requestHttp) {
super(requestHttp);
}

View File

@@ -4,7 +4,6 @@ import jodd.http.HttpConnectionProvider;
import jodd.http.HttpRequest;
import jodd.http.HttpResponse;
import jodd.http.ProxyInfo;
import jodd.util.StringPool;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxError;
@@ -18,7 +17,7 @@ import java.nio.charset.StandardCharsets;
* Created by ecoolper on 2017/5/5.
*/
public class MaterialDeleteJoddHttpRequestExecutor extends MaterialDeleteRequestExecutor<HttpConnectionProvider, ProxyInfo> {
public MaterialDeleteJoddHttpRequestExecutor(RequestHttp requestHttp) {
public MaterialDeleteJoddHttpRequestExecutor(RequestHttp<HttpConnectionProvider, ProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -23,7 +23,7 @@ import java.io.IOException;
public class MaterialDeleteOkhttpRequestExecutor extends MaterialDeleteRequestExecutor<OkHttpClient, OkHttpProxyInfo> {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
public MaterialDeleteOkhttpRequestExecutor(RequestHttp requestHttp) {
public MaterialDeleteOkhttpRequestExecutor(RequestHttp<OkHttpClient, OkHttpProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -2,16 +2,22 @@ package me.chanjar.weixin.mp.util.requestexecuter.material;
import java.io.IOException;
import jodd.http.HttpConnectionProvider;
import jodd.http.ProxyInfo;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.ResponseHandler;
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
import okhttp3.OkHttpClient;
import org.apache.http.HttpHost;
import org.apache.http.impl.client.CloseableHttpClient;
public abstract class MaterialDeleteRequestExecutor<H, P> implements RequestExecutor<Boolean, String> {
protected RequestHttp<H, P> requestHttp;
public MaterialDeleteRequestExecutor(RequestHttp requestHttp) {
public MaterialDeleteRequestExecutor(RequestHttp<H, P> requestHttp) {
this.requestHttp = requestHttp;
}
@@ -20,14 +26,15 @@ public abstract class MaterialDeleteRequestExecutor<H, P> implements RequestExec
handler.handle(this.execute(uri, data, wxType));
}
public static RequestExecutor<Boolean, String> create(RequestHttp requestHttp) {
@SuppressWarnings("unchecked")
public static RequestExecutor<Boolean, String> create(RequestHttp<?, ?> requestHttp) {
switch (requestHttp.getRequestType()) {
case APACHE_HTTP:
return new MaterialDeleteApacheHttpRequestExecutor(requestHttp);
return new MaterialDeleteApacheHttpRequestExecutor((RequestHttp<CloseableHttpClient, HttpHost>) requestHttp);
case JODD_HTTP:
return new MaterialDeleteJoddHttpRequestExecutor(requestHttp);
return new MaterialDeleteJoddHttpRequestExecutor((RequestHttp<HttpConnectionProvider, ProxyInfo>) requestHttp);
case OK_HTTP:
return new MaterialDeleteOkhttpRequestExecutor(requestHttp);
return new MaterialDeleteOkhttpRequestExecutor((RequestHttp<OkHttpClient, OkHttpProxyInfo>) requestHttp);
default:
return null;
}

View File

@@ -29,7 +29,7 @@ import java.io.IOException;
public class MaterialNewsInfoApacheHttpRequestExecutor
extends MaterialNewsInfoRequestExecutor<CloseableHttpClient, HttpHost> {
public MaterialNewsInfoApacheHttpRequestExecutor(RequestHttp requestHttp) {
public MaterialNewsInfoApacheHttpRequestExecutor(RequestHttp<CloseableHttpClient, HttpHost> requestHttp) {
super(requestHttp);
}

View File

@@ -5,7 +5,6 @@ import jodd.http.HttpConnectionProvider;
import jodd.http.HttpRequest;
import jodd.http.HttpResponse;
import jodd.http.ProxyInfo;
import jodd.util.StringPool;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.enums.WxType;
@@ -15,8 +14,6 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
@@ -26,7 +23,7 @@ import java.nio.charset.StandardCharsets;
*/
@Slf4j
public class MaterialNewsInfoJoddHttpRequestExecutor extends MaterialNewsInfoRequestExecutor<HttpConnectionProvider, ProxyInfo> {
public MaterialNewsInfoJoddHttpRequestExecutor(RequestHttp requestHttp) {
public MaterialNewsInfoJoddHttpRequestExecutor(RequestHttp<HttpConnectionProvider, ProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -22,7 +22,7 @@ import java.io.IOException;
*/
@Slf4j
public class MaterialNewsInfoOkhttpRequestExecutor extends MaterialNewsInfoRequestExecutor<OkHttpClient, OkHttpProxyInfo> {
public MaterialNewsInfoOkhttpRequestExecutor(RequestHttp requestHttp) {
public MaterialNewsInfoOkhttpRequestExecutor(RequestHttp<OkHttpClient, OkHttpProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -2,17 +2,23 @@ package me.chanjar.weixin.mp.util.requestexecuter.material;
import java.io.IOException;
import jodd.http.HttpConnectionProvider;
import jodd.http.ProxyInfo;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.ResponseHandler;
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
import okhttp3.OkHttpClient;
import org.apache.http.HttpHost;
import org.apache.http.impl.client.CloseableHttpClient;
public abstract class MaterialNewsInfoRequestExecutor<H, P> implements RequestExecutor<WxMpMaterialNews, String> {
protected RequestHttp<H, P> requestHttp;
public MaterialNewsInfoRequestExecutor(RequestHttp requestHttp) {
public MaterialNewsInfoRequestExecutor(RequestHttp<H, P> requestHttp) {
this.requestHttp = requestHttp;
}
@@ -21,14 +27,15 @@ public abstract class MaterialNewsInfoRequestExecutor<H, P> implements RequestEx
handler.handle(this.execute(uri, data, wxType));
}
public static RequestExecutor<WxMpMaterialNews, String> create(RequestHttp requestHttp) {
@SuppressWarnings("unchecked")
public static RequestExecutor<WxMpMaterialNews, String> create(RequestHttp<?, ?> requestHttp) {
switch (requestHttp.getRequestType()) {
case APACHE_HTTP:
return new MaterialNewsInfoApacheHttpRequestExecutor(requestHttp);
return new MaterialNewsInfoApacheHttpRequestExecutor((RequestHttp<CloseableHttpClient, HttpHost>) requestHttp);
case JODD_HTTP:
return new MaterialNewsInfoJoddHttpRequestExecutor(requestHttp);
return new MaterialNewsInfoJoddHttpRequestExecutor((RequestHttp<HttpConnectionProvider, ProxyInfo>) requestHttp);
case OK_HTTP:
return new MaterialNewsInfoOkhttpRequestExecutor(requestHttp);
return new MaterialNewsInfoOkhttpRequestExecutor((RequestHttp<OkHttpClient, OkHttpProxyInfo>) requestHttp);
default:
//TODO 需要优化抛出异常
return null;

View File

@@ -28,7 +28,7 @@ import java.util.Map;
* Created by ecoolper on 2017/5/5.
*/
public class MaterialUploadApacheHttpRequestExecutor extends MaterialUploadRequestExecutor<CloseableHttpClient, HttpHost> {
public MaterialUploadApacheHttpRequestExecutor(RequestHttp requestHttp) {
public MaterialUploadApacheHttpRequestExecutor(RequestHttp<CloseableHttpClient, HttpHost> requestHttp) {
super(requestHttp);
}

View File

@@ -4,7 +4,6 @@ import jodd.http.HttpConnectionProvider;
import jodd.http.HttpRequest;
import jodd.http.HttpResponse;
import jodd.http.ProxyInfo;
import jodd.util.StringPool;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxError;
@@ -24,7 +23,7 @@ import java.util.Map;
* Created by ecoolper on 2017/5/5.
*/
public class MaterialUploadJoddHttpRequestExecutor extends MaterialUploadRequestExecutor<HttpConnectionProvider, ProxyInfo> {
public MaterialUploadJoddHttpRequestExecutor(RequestHttp requestHttp) {
public MaterialUploadJoddHttpRequestExecutor(RequestHttp<HttpConnectionProvider, ProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -23,7 +23,7 @@ import java.util.Map;
public class MaterialUploadOkhttpRequestExecutor extends MaterialUploadRequestExecutor<OkHttpClient, OkHttpProxyInfo> {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
public MaterialUploadOkhttpRequestExecutor(RequestHttp requestHttp) {
public MaterialUploadOkhttpRequestExecutor(RequestHttp<OkHttpClient, OkHttpProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -2,13 +2,19 @@ package me.chanjar.weixin.mp.util.requestexecuter.material;
import java.io.IOException;
import jodd.http.HttpConnectionProvider;
import jodd.http.ProxyInfo;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.ResponseHandler;
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
import me.chanjar.weixin.mp.bean.material.WxMpMaterial;
import me.chanjar.weixin.mp.bean.material.WxMpMaterialUploadResult;
import okhttp3.OkHttpClient;
import org.apache.http.HttpHost;
import org.apache.http.impl.client.CloseableHttpClient;
/**
* @author codepiano
@@ -16,7 +22,7 @@ import me.chanjar.weixin.mp.bean.material.WxMpMaterialUploadResult;
public abstract class MaterialUploadRequestExecutor<H, P> implements RequestExecutor<WxMpMaterialUploadResult, WxMpMaterial> {
protected RequestHttp<H, P> requestHttp;
public MaterialUploadRequestExecutor(RequestHttp requestHttp) {
public MaterialUploadRequestExecutor(RequestHttp<H, P> requestHttp) {
this.requestHttp = requestHttp;
}
@@ -25,14 +31,15 @@ public abstract class MaterialUploadRequestExecutor<H, P> implements RequestExec
handler.handle(this.execute(uri, data, wxType));
}
public static RequestExecutor<WxMpMaterialUploadResult, WxMpMaterial> create(RequestHttp requestHttp) {
@SuppressWarnings("unchecked")
public static RequestExecutor<WxMpMaterialUploadResult, WxMpMaterial> create(RequestHttp<?, ?> requestHttp) {
switch (requestHttp.getRequestType()) {
case APACHE_HTTP:
return new MaterialUploadApacheHttpRequestExecutor(requestHttp);
return new MaterialUploadApacheHttpRequestExecutor((RequestHttp<CloseableHttpClient, HttpHost>) requestHttp);
case JODD_HTTP:
return new MaterialUploadJoddHttpRequestExecutor(requestHttp);
return new MaterialUploadJoddHttpRequestExecutor((RequestHttp<HttpConnectionProvider, ProxyInfo>) requestHttp);
case OK_HTTP:
return new MaterialUploadOkhttpRequestExecutor(requestHttp);
return new MaterialUploadOkhttpRequestExecutor((RequestHttp<OkHttpClient, OkHttpProxyInfo>) requestHttp);
default:
return null;
}

View File

@@ -22,7 +22,7 @@ import java.util.Map;
* Created by ecoolper on 2017/5/5.
*/
public class MaterialVideoInfoApacheHttpRequestExecutor extends MaterialVideoInfoRequestExecutor<CloseableHttpClient, HttpHost> {
public MaterialVideoInfoApacheHttpRequestExecutor(RequestHttp requestHttp) {
public MaterialVideoInfoApacheHttpRequestExecutor(RequestHttp<CloseableHttpClient, HttpHost> requestHttp) {
super(requestHttp);
}

View File

@@ -4,7 +4,6 @@ import jodd.http.HttpConnectionProvider;
import jodd.http.HttpRequest;
import jodd.http.HttpResponse;
import jodd.http.ProxyInfo;
import jodd.util.StringPool;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxError;
@@ -19,7 +18,7 @@ import java.nio.charset.StandardCharsets;
* Created by ecoolper on 2017/5/5.
*/
public class MaterialVideoInfoJoddHttpRequestExecutor extends MaterialVideoInfoRequestExecutor<HttpConnectionProvider, ProxyInfo> {
public MaterialVideoInfoJoddHttpRequestExecutor(RequestHttp requestHttp) {
public MaterialVideoInfoJoddHttpRequestExecutor(RequestHttp<HttpConnectionProvider, ProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -20,7 +20,7 @@ import java.io.IOException;
public class MaterialVideoInfoOkhttpRequestExecutor extends MaterialVideoInfoRequestExecutor<OkHttpClient, OkHttpProxyInfo> {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
public MaterialVideoInfoOkhttpRequestExecutor(RequestHttp requestHttp) {
public MaterialVideoInfoOkhttpRequestExecutor(RequestHttp<OkHttpClient, OkHttpProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -3,17 +3,23 @@ package me.chanjar.weixin.mp.util.requestexecuter.material;
import java.io.IOException;
import jodd.http.HttpConnectionProvider;
import jodd.http.ProxyInfo;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.ResponseHandler;
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult;
import okhttp3.OkHttpClient;
import org.apache.http.HttpHost;
import org.apache.http.impl.client.CloseableHttpClient;
public abstract class MaterialVideoInfoRequestExecutor<H, P> implements RequestExecutor<WxMpMaterialVideoInfoResult, String> {
protected RequestHttp<H, P> requestHttp;
public MaterialVideoInfoRequestExecutor(RequestHttp requestHttp) {
public MaterialVideoInfoRequestExecutor(RequestHttp<H, P> requestHttp) {
this.requestHttp = requestHttp;
}
@@ -22,14 +28,15 @@ public abstract class MaterialVideoInfoRequestExecutor<H, P> implements RequestE
handler.handle(this.execute(uri, data, wxType));
}
public static RequestExecutor<WxMpMaterialVideoInfoResult, String> create(RequestHttp requestHttp) {
@SuppressWarnings("unchecked")
public static RequestExecutor<WxMpMaterialVideoInfoResult, String> create(RequestHttp<?, ?> requestHttp) {
switch (requestHttp.getRequestType()) {
case APACHE_HTTP:
return new MaterialVideoInfoApacheHttpRequestExecutor(requestHttp);
return new MaterialVideoInfoApacheHttpRequestExecutor((RequestHttp<CloseableHttpClient, HttpHost>) requestHttp);
case JODD_HTTP:
return new MaterialVideoInfoJoddHttpRequestExecutor(requestHttp);
return new MaterialVideoInfoJoddHttpRequestExecutor((RequestHttp<HttpConnectionProvider, ProxyInfo>) requestHttp);
case OK_HTTP:
return new MaterialVideoInfoOkhttpRequestExecutor(requestHttp);
return new MaterialVideoInfoOkhttpRequestExecutor((RequestHttp<OkHttpClient, OkHttpProxyInfo>) requestHttp);
default:
return null;
}

View File

@@ -26,7 +26,7 @@ import java.util.Map;
* Created by ecoolper on 2017/5/5.
*/
public class MaterialVoiceAndImageDownloadApacheHttpRequestExecutor extends MaterialVoiceAndImageDownloadRequestExecutor<CloseableHttpClient, HttpHost> {
public MaterialVoiceAndImageDownloadApacheHttpRequestExecutor(RequestHttp requestHttp, File tmpDirFile) {
public MaterialVoiceAndImageDownloadApacheHttpRequestExecutor(RequestHttp<CloseableHttpClient, HttpHost> requestHttp, File tmpDirFile) {
super(requestHttp, tmpDirFile);
}

View File

@@ -4,7 +4,6 @@ import jodd.http.HttpConnectionProvider;
import jodd.http.HttpRequest;
import jodd.http.HttpResponse;
import jodd.http.ProxyInfo;
import jodd.util.StringPool;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxError;
@@ -23,7 +22,7 @@ import java.nio.charset.StandardCharsets;
* Created by ecoolper on 2017/5/5.
*/
public class MaterialVoiceAndImageDownloadJoddHttpRequestExecutor extends MaterialVoiceAndImageDownloadRequestExecutor<HttpConnectionProvider, ProxyInfo> {
public MaterialVoiceAndImageDownloadJoddHttpRequestExecutor(RequestHttp requestHttp, File tmpDirFile) {
public MaterialVoiceAndImageDownloadJoddHttpRequestExecutor(RequestHttp<HttpConnectionProvider, ProxyInfo> requestHttp, File tmpDirFile) {
super(requestHttp, tmpDirFile);
}

View File

@@ -8,8 +8,6 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
import me.chanjar.weixin.common.util.json.WxGsonBuilder;
import okhttp3.*;
import okio.BufferedSink;
import okio.Okio;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,7 +20,7 @@ import java.io.*;
public class MaterialVoiceAndImageDownloadOkhttpRequestExecutor extends MaterialVoiceAndImageDownloadRequestExecutor<OkHttpClient, OkHttpProxyInfo> {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
public MaterialVoiceAndImageDownloadOkhttpRequestExecutor(RequestHttp requestHttp, File tmpDirFile) {
public MaterialVoiceAndImageDownloadOkhttpRequestExecutor(RequestHttp<OkHttpClient, OkHttpProxyInfo> requestHttp, File tmpDirFile) {
super(requestHttp, tmpDirFile);
}

View File

@@ -4,17 +4,23 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import jodd.http.HttpConnectionProvider;
import jodd.http.ProxyInfo;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.ResponseHandler;
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
import okhttp3.OkHttpClient;
import org.apache.http.HttpHost;
import org.apache.http.impl.client.CloseableHttpClient;
public abstract class MaterialVoiceAndImageDownloadRequestExecutor<H, P> implements RequestExecutor<InputStream, String> {
protected RequestHttp<H, P> requestHttp;
protected File tmpDirFile;
public MaterialVoiceAndImageDownloadRequestExecutor(RequestHttp requestHttp, File tmpDirFile) {
public MaterialVoiceAndImageDownloadRequestExecutor(RequestHttp<H, P> requestHttp, File tmpDirFile) {
this.requestHttp = requestHttp;
this.tmpDirFile = tmpDirFile;
}
@@ -24,14 +30,15 @@ public abstract class MaterialVoiceAndImageDownloadRequestExecutor<H, P> impleme
handler.handle(this.execute(uri, data, wxType));
}
public static RequestExecutor<InputStream, String> create(RequestHttp requestHttp, File tmpDirFile) {
@SuppressWarnings("unchecked")
public static RequestExecutor<InputStream, String> create(RequestHttp<?, ?> requestHttp, File tmpDirFile) {
switch (requestHttp.getRequestType()) {
case APACHE_HTTP:
return new MaterialVoiceAndImageDownloadApacheHttpRequestExecutor(requestHttp, tmpDirFile);
return new MaterialVoiceAndImageDownloadApacheHttpRequestExecutor((RequestHttp<CloseableHttpClient, HttpHost>) requestHttp, tmpDirFile);
case JODD_HTTP:
return new MaterialVoiceAndImageDownloadJoddHttpRequestExecutor(requestHttp, tmpDirFile);
return new MaterialVoiceAndImageDownloadJoddHttpRequestExecutor((RequestHttp<HttpConnectionProvider, ProxyInfo>) requestHttp, tmpDirFile);
case OK_HTTP:
return new MaterialVoiceAndImageDownloadOkhttpRequestExecutor(requestHttp, tmpDirFile);
return new MaterialVoiceAndImageDownloadOkhttpRequestExecutor((RequestHttp<OkHttpClient, OkHttpProxyInfo>) requestHttp, tmpDirFile);
default:
return null;
}

View File

@@ -11,7 +11,6 @@ import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
@@ -25,7 +24,7 @@ import java.io.IOException;
* @author ecoolper
*/
public class MediaImgUploadApacheHttpRequestExecutor extends MediaImgUploadRequestExecutor<CloseableHttpClient, HttpHost> {
public MediaImgUploadApacheHttpRequestExecutor(RequestHttp requestHttp) {
public MediaImgUploadApacheHttpRequestExecutor(RequestHttp<CloseableHttpClient, HttpHost> requestHttp) {
super(requestHttp);
}

View File

@@ -4,7 +4,6 @@ import jodd.http.HttpConnectionProvider;
import jodd.http.HttpRequest;
import jodd.http.HttpResponse;
import jodd.http.ProxyInfo;
import jodd.util.StringPool;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxError;
@@ -22,7 +21,7 @@ import java.nio.charset.StandardCharsets;
* @author ecoolper
*/
public class MediaImgUploadHttpRequestExecutor extends MediaImgUploadRequestExecutor<HttpConnectionProvider, ProxyInfo> {
public MediaImgUploadHttpRequestExecutor(RequestHttp requestHttp) {
public MediaImgUploadHttpRequestExecutor(RequestHttp<HttpConnectionProvider, ProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -21,7 +21,7 @@ import java.io.IOException;
public class MediaImgUploadOkhttpRequestExecutor extends MediaImgUploadRequestExecutor<OkHttpClient, OkHttpProxyInfo> {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
public MediaImgUploadOkhttpRequestExecutor(RequestHttp requestHttp) {
public MediaImgUploadOkhttpRequestExecutor(RequestHttp<OkHttpClient, OkHttpProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -3,12 +3,18 @@ package me.chanjar.weixin.mp.util.requestexecuter.media;
import java.io.File;
import java.io.IOException;
import jodd.http.HttpConnectionProvider;
import jodd.http.ProxyInfo;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.ResponseHandler;
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
import me.chanjar.weixin.mp.bean.material.WxMediaImgUploadResult;
import okhttp3.OkHttpClient;
import org.apache.http.HttpHost;
import org.apache.http.impl.client.CloseableHttpClient;
/**
* @author miller
@@ -16,7 +22,7 @@ import me.chanjar.weixin.mp.bean.material.WxMediaImgUploadResult;
public abstract class MediaImgUploadRequestExecutor<H, P> implements RequestExecutor<WxMediaImgUploadResult, File> {
protected RequestHttp<H, P> requestHttp;
public MediaImgUploadRequestExecutor(RequestHttp requestHttp) {
public MediaImgUploadRequestExecutor(RequestHttp<H, P> requestHttp) {
this.requestHttp = requestHttp;
}
@@ -25,14 +31,15 @@ public abstract class MediaImgUploadRequestExecutor<H, P> implements RequestExec
handler.handle(this.execute(uri, data, wxType));
}
public static RequestExecutor<WxMediaImgUploadResult, File> create(RequestHttp requestHttp) {
@SuppressWarnings("unchecked")
public static RequestExecutor<WxMediaImgUploadResult, File> create(RequestHttp<?, ?> requestHttp) {
switch (requestHttp.getRequestType()) {
case APACHE_HTTP:
return new MediaImgUploadApacheHttpRequestExecutor(requestHttp);
return new MediaImgUploadApacheHttpRequestExecutor((RequestHttp<CloseableHttpClient, HttpHost>) requestHttp);
case JODD_HTTP:
return new MediaImgUploadHttpRequestExecutor(requestHttp);
return new MediaImgUploadHttpRequestExecutor((RequestHttp<HttpConnectionProvider, ProxyInfo>) requestHttp);
case OK_HTTP:
return new MediaImgUploadOkhttpRequestExecutor(requestHttp);
return new MediaImgUploadOkhttpRequestExecutor((RequestHttp<OkHttpClient, OkHttpProxyInfo>) requestHttp);
default:
return null;
}

View File

@@ -26,7 +26,7 @@ import java.util.UUID;
* Created by ecoolper on 2017/5/5.
*/
public class QrCodeApacheHttpRequestExecutor extends QrCodeRequestExecutor<CloseableHttpClient, HttpHost> {
public QrCodeApacheHttpRequestExecutor(RequestHttp requestHttp) {
public QrCodeApacheHttpRequestExecutor(RequestHttp<CloseableHttpClient, HttpHost> requestHttp) {
super(requestHttp);
}

View File

@@ -5,7 +5,6 @@ import jodd.http.HttpRequest;
import jodd.http.HttpResponse;
import jodd.http.ProxyInfo;
import jodd.net.MimeTypes;
import jodd.util.StringPool;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxError;
@@ -26,7 +25,7 @@ import java.util.UUID;
* Created by ecoolper on 2017/5/5.
*/
public class QrCodeJoddHttpRequestExecutor extends QrCodeRequestExecutor<HttpConnectionProvider, ProxyInfo> {
public QrCodeJoddHttpRequestExecutor(RequestHttp requestHttp) {
public QrCodeJoddHttpRequestExecutor(RequestHttp<HttpConnectionProvider, ProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -27,7 +27,7 @@ import java.util.UUID;
public class QrCodeOkhttpRequestExecutor extends QrCodeRequestExecutor<OkHttpClient, OkHttpProxyInfo> {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
public QrCodeOkhttpRequestExecutor(RequestHttp requestHttp) {
public QrCodeOkhttpRequestExecutor(RequestHttp<OkHttpClient, OkHttpProxyInfo> requestHttp) {
super(requestHttp);
}

View File

@@ -3,13 +3,18 @@ package me.chanjar.weixin.mp.util.requestexecuter.qrcode;
import java.io.File;
import java.io.IOException;
import jodd.http.HttpConnectionProvider;
import jodd.http.ProxyInfo;
import me.chanjar.weixin.common.enums.WxType;
import me.chanjar.weixin.common.error.WxError;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.ResponseHandler;
import me.chanjar.weixin.common.util.http.okhttp.OkHttpProxyInfo;
import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket;
import okhttp3.OkHttpClient;
import org.apache.http.HttpHost;
import org.apache.http.impl.client.CloseableHttpClient;
/**
* 获得QrCode图片 请求执行器.
@@ -19,7 +24,7 @@ import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket;
public abstract class QrCodeRequestExecutor<H, P> implements RequestExecutor<File, WxMpQrCodeTicket> {
protected RequestHttp<H, P> requestHttp;
public QrCodeRequestExecutor(RequestHttp requestHttp) {
public QrCodeRequestExecutor(RequestHttp<H, P> requestHttp) {
this.requestHttp = requestHttp;
}
@@ -28,14 +33,15 @@ public abstract class QrCodeRequestExecutor<H, P> implements RequestExecutor<Fil
handler.handle(this.execute(uri, data, wxType));
}
public static RequestExecutor<File, WxMpQrCodeTicket> create(RequestHttp requestHttp) throws WxErrorException {
@SuppressWarnings("unchecked")
public static RequestExecutor<File, WxMpQrCodeTicket> create(RequestHttp<?, ?> requestHttp) throws WxErrorException {
switch (requestHttp.getRequestType()) {
case APACHE_HTTP:
return new QrCodeApacheHttpRequestExecutor(requestHttp);
return new QrCodeApacheHttpRequestExecutor((RequestHttp<CloseableHttpClient, HttpHost>) requestHttp);
case JODD_HTTP:
return new QrCodeJoddHttpRequestExecutor(requestHttp);
return new QrCodeJoddHttpRequestExecutor((RequestHttp<HttpConnectionProvider, ProxyInfo>) requestHttp);
case OK_HTTP:
return new QrCodeOkhttpRequestExecutor(requestHttp);
return new QrCodeOkhttpRequestExecutor((RequestHttp<OkHttpClient, OkHttpProxyInfo>) requestHttp);
default:
throw new WxErrorException("不支持的http框架");
}

View File

@@ -10,7 +10,6 @@ import org.apache.http.HttpHost;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.ContentType;
import org.apache.http.entity.mime.HttpMultipartMode;
import org.apache.http.entity.mime.MultipartEntityBuilder;
import org.apache.http.impl.client.CloseableHttpClient;
@@ -26,7 +25,7 @@ import java.io.IOException;
* @author <a href="https://github.com/binarywang">Binary Wang</a>
*/
public class VoiceUploadApacheHttpRequestExecutor extends VoiceUploadRequestExecutor<CloseableHttpClient, HttpHost> {
public VoiceUploadApacheHttpRequestExecutor(RequestHttp requestHttp) {
public VoiceUploadApacheHttpRequestExecutor(RequestHttp<CloseableHttpClient, HttpHost> requestHttp) {
super(requestHttp);
}

View File

@@ -8,6 +8,8 @@ import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.util.http.RequestExecutor;
import me.chanjar.weixin.common.util.http.RequestHttp;
import me.chanjar.weixin.common.util.http.ResponseHandler;
import org.apache.http.HttpHost;
import org.apache.http.impl.client.CloseableHttpClient;
/**
* <pre>
@@ -19,7 +21,7 @@ import me.chanjar.weixin.common.util.http.ResponseHandler;
public abstract class VoiceUploadRequestExecutor<H, P> implements RequestExecutor<Boolean, File> {
protected RequestHttp<H, P> requestHttp;
public VoiceUploadRequestExecutor(RequestHttp requestHttp) {
public VoiceUploadRequestExecutor(RequestHttp<H, P> requestHttp) {
this.requestHttp = requestHttp;
}
@@ -28,10 +30,11 @@ public abstract class VoiceUploadRequestExecutor<H, P> implements RequestExecuto
handler.handle(this.execute(uri, data, wxType));
}
public static RequestExecutor<Boolean, File> create(RequestHttp requestHttp) {
@SuppressWarnings("unchecked")
public static RequestExecutor<Boolean, File> create(RequestHttp<?, ?> requestHttp) {
switch (requestHttp.getRequestType()) {
case APACHE_HTTP:
return new VoiceUploadApacheHttpRequestExecutor(requestHttp);
return new VoiceUploadApacheHttpRequestExecutor((RequestHttp<CloseableHttpClient, HttpHost>) requestHttp);
case JODD_HTTP:
case OK_HTTP:
default: