mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-06-28 13:16:19 +08:00
🐛 #3203 【公众号】修复使用okhttp 方式永久素材下载接口存在的问题
This commit is contained in:
parent
c68e2301ca
commit
8610c0f0af
@ -46,7 +46,7 @@ public class MaterialVoiceAndImageDownloadApacheHttpRequestExecutor extends Mate
|
||||
// 下载媒体文件出错
|
||||
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
||||
String responseContentString = new String(responseContent, StandardCharsets.UTF_8);
|
||||
if (responseContentString.length() < 100) {
|
||||
if (responseContentString.length() <= 215) {
|
||||
try {
|
||||
WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class);
|
||||
if (wxError.getErrorCode() != 0) {
|
||||
|
@ -42,7 +42,7 @@ public class MaterialVoiceAndImageDownloadJoddHttpRequestExecutor extends Materi
|
||||
// 下载媒体文件出错
|
||||
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
||||
String responseContentString = new String(responseContent, StandardCharsets.UTF_8);
|
||||
if (responseContentString.length() < 100) {
|
||||
if (responseContentString.length() <= 215) {
|
||||
try {
|
||||
WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class);
|
||||
if (wxError.getErrorCode() != 0) {
|
||||
|
@ -10,6 +10,7 @@ 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;
|
||||
|
||||
@ -35,14 +36,12 @@ public class MaterialVoiceAndImageDownloadOkhttpRequestExecutor extends Material
|
||||
Request request = new Request.Builder().url(uri).get().post(requestBody).build();
|
||||
Response response = client.newCall(request).execute();
|
||||
String contentTypeHeader = response.header("Content-Type");
|
||||
if ("text/plain".equals(contentTypeHeader) || "application/json; charset=utf-8".equals(contentTypeHeader)) {
|
||||
if ("text/plain".equals(contentTypeHeader) || "application/json; charset=utf-8".equals(contentTypeHeader)
|
||||
|| "application/json; encoding=utf-8".equals(contentTypeHeader)) {
|
||||
String responseContent = response.body().string();
|
||||
throw new WxErrorException(WxError.fromJson(responseContent, WxType.MP));
|
||||
}
|
||||
|
||||
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); BufferedSink sink = Okio.buffer(Okio.sink(outputStream))) {
|
||||
sink.writeAll(response.body().source());
|
||||
return new ByteArrayInputStream(outputStream.toByteArray());
|
||||
}
|
||||
byte[] responseContent = IOUtils.toByteArray(response.body().source().inputStream());
|
||||
return new ByteArrayInputStream(responseContent);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user