Skip to content

Commit 3b7c0a7

Browse files
authored
Merge pull request binarywang#241 from crskyp/develop
jodd response 编码设置为UTF-8,解决response乱码问题
2 parents 69ca699 + 7f91ba2 commit 3b7c0a7

13 files changed

+66
-29
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddMediaDownloadRequestExecutor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import jodd.http.HttpRequest;
55
import jodd.http.HttpResponse;
66
import jodd.http.ProxyInfo;
7+
import jodd.util.StringPool;
8+
79
import me.chanjar.weixin.common.bean.result.WxError;
810
import me.chanjar.weixin.common.exception.WxErrorException;
911
import me.chanjar.weixin.common.util.fs.FileUtils;
@@ -44,6 +46,8 @@ public File execute(String uri, String queryParam) throws WxErrorException, IOEx
4446
request.withConnectionProvider(requestHttp.getRequestHttpClient());
4547

4648
HttpResponse response = request.send();
49+
response.charset(StringPool.UTF_8);
50+
4751
String contentType = response.header("Content-Type");
4852
if (contentType != null && contentType.startsWith("application/json")) {
4953
// application/json; encoding=utf-8 下载媒体文件出错

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddMediaUploadRequestExecutor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import jodd.http.HttpRequest;
55
import jodd.http.HttpResponse;
66
import jodd.http.ProxyInfo;
7+
import jodd.util.StringPool;
8+
79
import me.chanjar.weixin.common.bean.result.WxError;
810
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
911
import me.chanjar.weixin.common.exception.WxErrorException;
@@ -30,6 +32,8 @@ public WxMediaUploadResult execute(String uri, File file) throws WxErrorExceptio
3032
request.withConnectionProvider(requestHttp.getRequestHttpClient());
3133
request.form("media", file);
3234
HttpResponse response = request.send();
35+
response.charset(StringPool.UTF_8);
36+
3337
String responseContent = response.bodyText();
3438
WxError error = WxError.fromJson(responseContent);
3539
if (error.getErrorCode() != 0) {

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddSimpleGetRequestExecutor.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package me.chanjar.weixin.common.util.http.jodd;
22

3-
import jodd.http.HttpConnectionProvider;
4-
import jodd.http.HttpRequest;
5-
import jodd.http.HttpResponse;
6-
import jodd.http.ProxyInfo;
3+
import jodd.http.*;
4+
import jodd.util.StringPool;
5+
76
import me.chanjar.weixin.common.bean.result.WxError;
87
import me.chanjar.weixin.common.exception.WxErrorException;
98
import me.chanjar.weixin.common.util.http.RequestHttp;
@@ -35,7 +34,10 @@ public String execute(String uri, String queryParam) throws WxErrorException, IO
3534
}
3635
request.withConnectionProvider(requestHttp.getRequestHttpClient());
3736
HttpResponse response = request.send();
37+
response.charset(StringPool.UTF_8);
38+
3839
String responseContent = response.bodyText();
40+
3941
WxError error = WxError.fromJson(responseContent);
4042
if (error.getErrorCode() != 0) {
4143
throw new WxErrorException(error);

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/jodd/JoddSimplePostRequestExecutor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import jodd.http.HttpRequest;
55
import jodd.http.HttpResponse;
66
import jodd.http.ProxyInfo;
7+
import jodd.util.StringPool;
8+
79
import me.chanjar.weixin.common.bean.result.WxError;
810
import me.chanjar.weixin.common.exception.WxErrorException;
911
import me.chanjar.weixin.common.util.http.RequestHttp;
@@ -34,6 +36,7 @@ public String execute(String uri, String postEntity) throws WxErrorException, IO
3436
request.bodyText(postEntity);
3537
}
3638
HttpResponse response = request.send();
39+
response.charset(StringPool.UTF_8);
3740

3841
String responseContent = response.bodyText();
3942
if (responseContent.isEmpty()) {
Lines changed: 26 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,33 @@
11
package me.chanjar.weixin.mp.util.http;
22

3-
import me.chanjar.weixin.common.util.http.RequestExecutor;
4-
import me.chanjar.weixin.common.util.http.RequestHttp;
5-
import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult;
6-
import me.chanjar.weixin.mp.util.http.apache.ApacheMaterialVideoInfoRequestExecutor;
7-
import me.chanjar.weixin.mp.util.http.jodd.JoddMaterialVideoInfoRequestExecutor;
8-
import me.chanjar.weixin.mp.util.http.okhttp.OkhttpMaterialVideoInfoRequestExecutor;
3+
4+
import me.chanjar.weixin.common.util.http.RequestExecutor;
5+
import me.chanjar.weixin.common.util.http.RequestHttp;
6+
7+
import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult;
8+
import me.chanjar.weixin.mp.util.http.apache.ApacheMaterialVideoInfoRequestExecutor;
9+
import me.chanjar.weixin.mp.util.http.jodd.JoddMaterialVideoInfoRequestExecutor;
10+
import me.chanjar.weixin.mp.util.http.okhttp.OkhttpMaterialVideoInfoRequestExecutor;
11+
912

1013
public abstract class MaterialVideoInfoRequestExecutor<H, P> implements RequestExecutor<WxMpMaterialVideoInfoResult, String> {
1114
protected RequestHttp<H, P> requestHttp;
1215

1316
public MaterialVideoInfoRequestExecutor(RequestHttp requestHttp) {
14-
this.requestHttp = requestHttp;
15-
}
16-
17-
public static RequestExecutor<WxMpMaterialVideoInfoResult, String> create(RequestHttp requestHttp) {
18-
switch (requestHttp.getRequestType()) {
19-
case apacheHttp:
20-
return new ApacheMaterialVideoInfoRequestExecutor(requestHttp);
21-
case joddHttp:
22-
return new JoddMaterialVideoInfoRequestExecutor(requestHttp);
23-
case okHttp:
24-
return new OkhttpMaterialVideoInfoRequestExecutor(requestHttp);
25-
default:
26-
return null;
27-
}
28-
}
29-
30-
}
17+
this.requestHttp = requestHttp;
18+
}
19+
20+
public static RequestExecutor<WxMpMaterialVideoInfoResult, String> create(RequestHttp requestHttp) {
21+
switch (requestHttp.getRequestType()) {
22+
case apacheHttp:
23+
return new ApacheMaterialVideoInfoRequestExecutor(requestHttp);
24+
case joddHttp:
25+
return new JoddMaterialVideoInfoRequestExecutor(requestHttp);
26+
case okHttp:
27+
return new OkhttpMaterialVideoInfoRequestExecutor(requestHttp);
28+
default:
29+
return null;
30+
}
31+
}
32+
33+
}

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/jodd/JoddMaterialDeleteRequestExecutor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import jodd.http.HttpRequest;
55
import jodd.http.HttpResponse;
66
import jodd.http.ProxyInfo;
7+
import jodd.util.StringPool;
8+
79
import me.chanjar.weixin.common.bean.result.WxError;
810
import me.chanjar.weixin.common.exception.WxErrorException;
911
import me.chanjar.weixin.common.util.http.RequestHttp;
@@ -29,6 +31,7 @@ public Boolean execute(String uri, String materialId) throws WxErrorException, I
2931

3032
request.query("media_id", materialId);
3133
HttpResponse response = request.send();
34+
response.charset(StringPool.UTF_8);
3235
String responseContent = response.bodyText();
3336
WxError error = WxError.fromJson(responseContent);
3437
if (error.getErrorCode() != 0) {

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/jodd/JoddMaterialNewsInfoRequestExecutor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import jodd.http.HttpRequest;
55
import jodd.http.HttpResponse;
66
import jodd.http.ProxyInfo;
7+
import jodd.util.StringPool;
8+
79
import me.chanjar.weixin.common.bean.result.WxError;
810
import me.chanjar.weixin.common.exception.WxErrorException;
911
import me.chanjar.weixin.common.util.http.RequestHttp;
@@ -31,6 +33,7 @@ public WxMpMaterialNews execute(String uri, String materialId) throws WxErrorExc
3133

3234
request.query("media_id", materialId);
3335
HttpResponse response = request.send();
36+
response.charset(StringPool.UTF_8);
3437

3538
String responseContent = response.bodyText();
3639
WxError error = WxError.fromJson(responseContent);

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/jodd/JoddMaterialUploadRequestExecutor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import jodd.http.HttpRequest;
55
import jodd.http.HttpResponse;
66
import jodd.http.ProxyInfo;
7+
import jodd.util.StringPool;
8+
79
import me.chanjar.weixin.common.bean.result.WxError;
810
import me.chanjar.weixin.common.exception.WxErrorException;
911
import me.chanjar.weixin.common.util.http.RequestHttp;
@@ -48,6 +50,7 @@ public WxMpMaterialUploadResult execute(String uri, WxMpMaterial material) throw
4850
}
4951

5052
HttpResponse response = request.send();
53+
response.charset(StringPool.UTF_8);
5154
String responseContent = response.bodyText();
5255
WxError error = WxError.fromJson(responseContent);
5356
if (error.getErrorCode() != 0) {

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/jodd/JoddMaterialVideoInfoRequestExecutor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import jodd.http.HttpRequest;
55
import jodd.http.HttpResponse;
66
import jodd.http.ProxyInfo;
7+
import jodd.util.StringPool;
8+
79
import me.chanjar.weixin.common.bean.result.WxError;
810
import me.chanjar.weixin.common.exception.WxErrorException;
911
import me.chanjar.weixin.common.util.http.RequestHttp;
@@ -30,6 +32,7 @@ public WxMpMaterialVideoInfoResult execute(String uri, String materialId) throws
3032

3133
request.query("media_id", materialId);
3234
HttpResponse response = request.send();
35+
response.charset(StringPool.UTF_8);
3336
String responseContent = response.bodyText();
3437
WxError error = WxError.fromJson(responseContent);
3538
if (error.getErrorCode() != 0) {

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/jodd/JoddMaterialVoiceAndImageDownloadRequestExecutor.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
import jodd.http.HttpRequest;
55
import jodd.http.HttpResponse;
66
import jodd.http.ProxyInfo;
7+
import jodd.util.StringPool;
8+
79
import me.chanjar.weixin.common.bean.result.WxError;
810
import me.chanjar.weixin.common.exception.WxErrorException;
911
import me.chanjar.weixin.common.util.http.RequestHttp;
@@ -34,6 +36,7 @@ public InputStream execute(String uri, String materialId) throws WxErrorExceptio
3436

3537
request.query("media_id", materialId);
3638
HttpResponse response = request.send();
39+
response.charset(StringPool.UTF_8);
3740
try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
3841
// 下载媒体文件出错
3942
byte[] responseContent = IOUtils.toByteArray(inputStream);

0 commit comments

Comments
 (0)