Skip to content

Commit

Permalink
🐛 #3203 【公众号】修复使用okhttp 方式永久素材下载接口存在的问题
Browse files Browse the repository at this point in the history
  • Loading branch information
shenliuming authored Jan 1, 2024
1 parent c68e230 commit 8610c0f
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public InputStream execute(String uri, String materialId, WxType wxType) throws
// 下载媒体文件出错
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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public InputStream execute(String uri, String materialId, WxType wxType) throws
// 下载媒体文件出错
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) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import okhttp3.*;
import okio.BufferedSink;
import okio.Okio;
import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -35,14 +36,12 @@ public InputStream execute(String uri, String materialId, WxType wxType) throws
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);
}
}

0 comments on commit 8610c0f

Please sign in to comment.