From d820d3d18b796cf9510794eb3cb41ebfb5f2e528 Mon Sep 17 00:00:00 2001 From: jinyu Date: Mon, 14 Dec 2015 19:43:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DInputStreamBody=E4=B8=8B?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E9=95=BF=E5=BA=A6=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../foxinmy/weixin4j/http/apache/InputStreamBody.java | 9 +++------ .../main/java/com/foxinmy/weixin4j/mp/api/MediaApi.java | 2 +- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/apache/InputStreamBody.java b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/apache/InputStreamBody.java index 75ffb9ba..a0993907 100644 --- a/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/apache/InputStreamBody.java +++ b/weixin4j-base/src/main/java/com/foxinmy/weixin4j/http/apache/InputStreamBody.java @@ -39,6 +39,7 @@ public class InputStreamBody extends AbstractContentBody { private final InputStream in; private final String filename; + private int contentLength; public InputStreamBody(final InputStream in, final String mimeType, final String filename) { @@ -67,6 +68,7 @@ public class InputStreamBody extends AbstractContentBody { int l; while ((l = this.in.read(tmp)) != -1) { out.write(tmp, 0, l); + contentLength += l; } out.flush(); } finally { @@ -83,12 +85,7 @@ public class InputStreamBody extends AbstractContentBody { } public long getContentLength() { - try { - return in.available(); - } catch (IOException e) { - ; - } - return -1; + return contentLength; } public String getFilename() { diff --git a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/MediaApi.java b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/MediaApi.java index 2618637c..83d57cd1 100644 --- a/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/MediaApi.java +++ b/weixin4j-mp/src/main/java/com/foxinmy/weixin4j/mp/api/MediaApi.java @@ -207,7 +207,7 @@ public class MediaApi extends MpApi { String media_upload_uri = getRequestUri("media_upload_uri"); response = weixinExecutor.post(String.format(media_upload_uri, token.getAccessToken(), mediaType.name()), - new FormBodyPart("media", new ByteArrayBody(content, mediaType + new FormBodyPart("media", new InputStreamBody(new ByteArrayInputStream(content), mediaType .getContentType().getMimeType(), fileName))); JSONObject obj = response.getAsJson();