Merge pull request #241 from crskyp/develop
jodd response 编码设置为UTF-8,解决response乱码问题
This commit is contained in:
@@ -4,6 +4,8 @@ import jodd.http.HttpConnectionProvider;
|
|||||||
import jodd.http.HttpRequest;
|
import jodd.http.HttpRequest;
|
||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.fs.FileUtils;
|
import me.chanjar.weixin.common.util.fs.FileUtils;
|
||||||
@@ -44,6 +46,8 @@ public class JoddMediaDownloadRequestExecutor extends MediaDownloadRequestExecut
|
|||||||
request.withConnectionProvider(requestHttp.getRequestHttpClient());
|
request.withConnectionProvider(requestHttp.getRequestHttpClient());
|
||||||
|
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
|
|
||||||
String contentType = response.header("Content-Type");
|
String contentType = response.header("Content-Type");
|
||||||
if (contentType != null && contentType.startsWith("application/json")) {
|
if (contentType != null && contentType.startsWith("application/json")) {
|
||||||
// application/json; encoding=utf-8 下载媒体文件出错
|
// application/json; encoding=utf-8 下载媒体文件出错
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import jodd.http.HttpConnectionProvider;
|
|||||||
import jodd.http.HttpRequest;
|
import jodd.http.HttpRequest;
|
||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
|
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
@@ -30,6 +32,8 @@ public class JoddMediaUploadRequestExecutor extends MediaUploadRequestExecutor<H
|
|||||||
request.withConnectionProvider(requestHttp.getRequestHttpClient());
|
request.withConnectionProvider(requestHttp.getRequestHttpClient());
|
||||||
request.form("media", file);
|
request.form("media", file);
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
|
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
package me.chanjar.weixin.common.util.http.jodd;
|
package me.chanjar.weixin.common.util.http.jodd;
|
||||||
|
|
||||||
import jodd.http.HttpConnectionProvider;
|
import jodd.http.*;
|
||||||
import jodd.http.HttpRequest;
|
import jodd.util.StringPool;
|
||||||
import jodd.http.HttpResponse;
|
|
||||||
import jodd.http.ProxyInfo;
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||||
@@ -35,7 +34,10 @@ public class JoddSimpleGetRequestExecutor extends SimpleGetRequestExecutor<HttpC
|
|||||||
}
|
}
|
||||||
request.withConnectionProvider(requestHttp.getRequestHttpClient());
|
request.withConnectionProvider(requestHttp.getRequestHttpClient());
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
|
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
|
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
throw new WxErrorException(error);
|
throw new WxErrorException(error);
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import jodd.http.HttpConnectionProvider;
|
|||||||
import jodd.http.HttpRequest;
|
import jodd.http.HttpRequest;
|
||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||||
@@ -34,6 +36,7 @@ public class JoddSimplePostRequestExecutor extends SimplePostRequestExecutor<Htt
|
|||||||
request.bodyText(postEntity);
|
request.bodyText(postEntity);
|
||||||
}
|
}
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
|
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
if (responseContent.isEmpty()) {
|
if (responseContent.isEmpty()) {
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
package me.chanjar.weixin.mp.util.http;
|
package me.chanjar.weixin.mp.util.http;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.util.http.RequestExecutor;
|
|
||||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
import me.chanjar.weixin.common.util.http.RequestExecutor;
|
||||||
import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult;
|
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||||
import me.chanjar.weixin.mp.util.http.apache.ApacheMaterialVideoInfoRequestExecutor;
|
|
||||||
import me.chanjar.weixin.mp.util.http.jodd.JoddMaterialVideoInfoRequestExecutor;
|
import me.chanjar.weixin.mp.bean.material.WxMpMaterialVideoInfoResult;
|
||||||
import me.chanjar.weixin.mp.util.http.okhttp.OkhttpMaterialVideoInfoRequestExecutor;
|
import me.chanjar.weixin.mp.util.http.apache.ApacheMaterialVideoInfoRequestExecutor;
|
||||||
|
import me.chanjar.weixin.mp.util.http.jodd.JoddMaterialVideoInfoRequestExecutor;
|
||||||
|
import me.chanjar.weixin.mp.util.http.okhttp.OkhttpMaterialVideoInfoRequestExecutor;
|
||||||
|
|
||||||
|
|
||||||
public abstract class MaterialVideoInfoRequestExecutor<H, P> implements RequestExecutor<WxMpMaterialVideoInfoResult, String> {
|
public abstract class MaterialVideoInfoRequestExecutor<H, P> implements RequestExecutor<WxMpMaterialVideoInfoResult, String> {
|
||||||
protected RequestHttp<H, P> requestHttp;
|
protected RequestHttp<H, P> requestHttp;
|
||||||
@@ -27,4 +30,4 @@ public abstract class MaterialVideoInfoRequestExecutor<H, P> implements RequestE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import jodd.http.HttpConnectionProvider;
|
|||||||
import jodd.http.HttpRequest;
|
import jodd.http.HttpRequest;
|
||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||||
@@ -29,6 +31,7 @@ public class JoddMaterialDeleteRequestExecutor extends MaterialDeleteRequestExec
|
|||||||
|
|
||||||
request.query("media_id", materialId);
|
request.query("media_id", materialId);
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import jodd.http.HttpConnectionProvider;
|
|||||||
import jodd.http.HttpRequest;
|
import jodd.http.HttpRequest;
|
||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||||
@@ -31,6 +33,7 @@ public class JoddMaterialNewsInfoRequestExecutor extends MaterialNewsInfoRequest
|
|||||||
|
|
||||||
request.query("media_id", materialId);
|
request.query("media_id", materialId);
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
|
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import jodd.http.HttpConnectionProvider;
|
|||||||
import jodd.http.HttpRequest;
|
import jodd.http.HttpRequest;
|
||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||||
@@ -48,6 +50,7 @@ public class JoddMaterialUploadRequestExecutor extends MaterialUploadRequestExec
|
|||||||
}
|
}
|
||||||
|
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import jodd.http.HttpConnectionProvider;
|
|||||||
import jodd.http.HttpRequest;
|
import jodd.http.HttpRequest;
|
||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||||
@@ -30,6 +32,7 @@ public class JoddMaterialVideoInfoRequestExecutor extends MaterialVideoInfoReque
|
|||||||
|
|
||||||
request.query("media_id", materialId);
|
request.query("media_id", materialId);
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import jodd.http.HttpConnectionProvider;
|
|||||||
import jodd.http.HttpRequest;
|
import jodd.http.HttpRequest;
|
||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||||
@@ -34,6 +36,7 @@ public class JoddMaterialVoiceAndImageDownloadRequestExecutor extends MaterialVo
|
|||||||
|
|
||||||
request.query("media_id", materialId);
|
request.query("media_id", materialId);
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
|
try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
|
||||||
// 下载媒体文件出错
|
// 下载媒体文件出错
|
||||||
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ import jodd.http.HttpConnectionProvider;
|
|||||||
import jodd.http.HttpRequest;
|
import jodd.http.HttpRequest;
|
||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.http.RequestHttp;
|
import me.chanjar.weixin.common.util.http.RequestHttp;
|
||||||
@@ -35,6 +37,7 @@ public class JoddMediaImgUploadRequestExecutor extends MediaImgUploadRequestExec
|
|||||||
|
|
||||||
request.form("media", data);
|
request.form("media", data);
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import jodd.http.HttpRequest;
|
|||||||
import jodd.http.HttpResponse;
|
import jodd.http.HttpResponse;
|
||||||
import jodd.http.ProxyInfo;
|
import jodd.http.ProxyInfo;
|
||||||
import jodd.util.MimeTypes;
|
import jodd.util.MimeTypes;
|
||||||
|
import jodd.util.StringPool;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.fs.FileUtils;
|
import me.chanjar.weixin.common.util.fs.FileUtils;
|
||||||
@@ -45,6 +47,7 @@ public class JoddQrCodeRequestExecutor extends QrCodeRequestExecutor<HttpConnect
|
|||||||
request.withConnectionProvider(requestHttp.getRequestHttpClient());
|
request.withConnectionProvider(requestHttp.getRequestHttpClient());
|
||||||
|
|
||||||
HttpResponse response = request.send();
|
HttpResponse response = request.send();
|
||||||
|
response.charset(StringPool.UTF_8);
|
||||||
String contentTypeHeader = response.header("Content-Type");
|
String contentTypeHeader = response.header("Content-Type");
|
||||||
if (MimeTypes.MIME_TEXT_PLAIN.equals(contentTypeHeader)) {
|
if (MimeTypes.MIME_TEXT_PLAIN.equals(contentTypeHeader)) {
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
package me.chanjar.weixin.mp.util.http.okhttp;
|
package me.chanjar.weixin.mp.util.http.okhttp;
|
||||||
|
|
||||||
import jodd.util.MimeTypes;
|
|
||||||
import me.chanjar.weixin.common.bean.result.WxError;
|
import me.chanjar.weixin.common.bean.result.WxError;
|
||||||
import me.chanjar.weixin.common.exception.WxErrorException;
|
import me.chanjar.weixin.common.exception.WxErrorException;
|
||||||
import me.chanjar.weixin.common.util.fs.FileUtils;
|
import me.chanjar.weixin.common.util.fs.FileUtils;
|
||||||
@@ -8,6 +7,7 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
|
|||||||
import me.chanjar.weixin.common.util.http.okhttp.OkhttpProxyInfo;
|
import me.chanjar.weixin.common.util.http.okhttp.OkhttpProxyInfo;
|
||||||
import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket;
|
import me.chanjar.weixin.mp.bean.result.WxMpQrCodeTicket;
|
||||||
import me.chanjar.weixin.mp.util.http.QrCodeRequestExecutor;
|
import me.chanjar.weixin.mp.util.http.QrCodeRequestExecutor;
|
||||||
|
|
||||||
import okhttp3.*;
|
import okhttp3.*;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
@@ -47,7 +47,7 @@ public class OkhttpQrCodeRequestExecutor extends QrCodeRequestExecutor<Connectio
|
|||||||
Request request = new Request.Builder().url(uri).get().build();
|
Request request = new Request.Builder().url(uri).get().build();
|
||||||
Response response = client.newCall(request).execute();
|
Response response = client.newCall(request).execute();
|
||||||
String contentTypeHeader = response.header("Content-Type");
|
String contentTypeHeader = response.header("Content-Type");
|
||||||
if (MimeTypes.MIME_TEXT_PLAIN.equals(contentTypeHeader)) {
|
if ("text/plain".equals(contentTypeHeader)) {
|
||||||
String responseContent = response.body().string();
|
String responseContent = response.body().string();
|
||||||
throw new WxErrorException(WxError.fromJson(responseContent));
|
throw new WxErrorException(WxError.fromJson(responseContent));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user