修复 media上传在netty httpclient 下报 41005问题

This commit is contained in:
jinyu 2015-12-14 19:19:43 +08:00
parent 57229a4460
commit 9b67fbb1bb
2 changed files with 8 additions and 11 deletions

View File

@ -24,6 +24,7 @@ import com.foxinmy.weixin4j.http.HttpMethod;
import com.foxinmy.weixin4j.http.HttpParams; import com.foxinmy.weixin4j.http.HttpParams;
import com.foxinmy.weixin4j.http.HttpRequest; import com.foxinmy.weixin4j.http.HttpRequest;
import com.foxinmy.weixin4j.http.HttpResponse; import com.foxinmy.weixin4j.http.HttpResponse;
import com.foxinmy.weixin4j.http.apache.ByteArrayBody;
import com.foxinmy.weixin4j.http.apache.FormBodyPart; import com.foxinmy.weixin4j.http.apache.FormBodyPart;
import com.foxinmy.weixin4j.http.apache.InputStreamBody; import com.foxinmy.weixin4j.http.apache.InputStreamBody;
import com.foxinmy.weixin4j.http.apache.StringBody; import com.foxinmy.weixin4j.http.apache.StringBody;
@ -195,8 +196,7 @@ public class MediaApi extends MpApi {
response = weixinExecutor response = weixinExecutor
.post(String.format(material_media_upload_uri, .post(String.format(material_media_upload_uri,
token.getAccessToken()), new FormBodyPart( token.getAccessToken()), new FormBodyPart(
"media", new InputStreamBody( "media", new ByteArrayBody(content,
new ByteArrayInputStream(content),
mediaType.getContentType() mediaType.getContentType()
.getMimeType(), fileName)), .getMimeType(), fileName)),
new FormBodyPart("type", new StringBody( new FormBodyPart("type", new StringBody(
@ -207,8 +207,7 @@ public class MediaApi extends MpApi {
String media_upload_uri = getRequestUri("media_upload_uri"); String media_upload_uri = getRequestUri("media_upload_uri");
response = weixinExecutor.post(String.format(media_upload_uri, response = weixinExecutor.post(String.format(media_upload_uri,
token.getAccessToken(), mediaType.name()), token.getAccessToken(), mediaType.name()),
new FormBodyPart("media", new InputStreamBody( new FormBodyPart("media", new ByteArrayBody(content, mediaType
new ByteArrayInputStream(content), mediaType
.getContentType().getMimeType(), .getContentType().getMimeType(),
fileName))); fileName)));
JSONObject obj = response.getAsJson(); JSONObject obj = response.getAsJson();

View File

@ -27,8 +27,8 @@ import com.foxinmy.weixin4j.http.HttpMethod;
import com.foxinmy.weixin4j.http.HttpParams; import com.foxinmy.weixin4j.http.HttpParams;
import com.foxinmy.weixin4j.http.HttpRequest; import com.foxinmy.weixin4j.http.HttpRequest;
import com.foxinmy.weixin4j.http.HttpResponse; import com.foxinmy.weixin4j.http.HttpResponse;
import com.foxinmy.weixin4j.http.apache.ByteArrayBody;
import com.foxinmy.weixin4j.http.apache.FormBodyPart; import com.foxinmy.weixin4j.http.apache.FormBodyPart;
import com.foxinmy.weixin4j.http.apache.InputStreamBody;
import com.foxinmy.weixin4j.http.weixin.JsonResult; import com.foxinmy.weixin4j.http.weixin.JsonResult;
import com.foxinmy.weixin4j.http.weixin.WeixinResponse; import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
import com.foxinmy.weixin4j.model.Consts; import com.foxinmy.weixin4j.model.Consts;
@ -130,18 +130,16 @@ public class MediaApi extends QyApi {
response = weixinExecutor.post(String.format( response = weixinExecutor.post(String.format(
material_media_upload_uri, token.getAccessToken(), material_media_upload_uri, token.getAccessToken(),
mediaType.name(), agentid), new FormBodyPart("media", mediaType.name(), agentid), new FormBodyPart("media",
new InputStreamBody(new ByteArrayInputStream(content), new ByteArrayBody(content, mediaType.getContentType()
mediaType.getContentType().getMimeType(), .getMimeType(), fileName)));
fileName)));
return new MediaUploadResult(response.getAsJson().getString( return new MediaUploadResult(response.getAsJson().getString(
"media_id"), mediaType, new Date()); "media_id"), mediaType, new Date());
} else { } else {
String media_upload_uri = getRequestUri("media_upload_uri"); String media_upload_uri = getRequestUri("media_upload_uri");
response = weixinExecutor.post(String.format(media_upload_uri, response = weixinExecutor.post(String.format(media_upload_uri,
token.getAccessToken(), mediaType.name()), token.getAccessToken(), mediaType.name()),
new FormBodyPart("media", new InputStreamBody( new FormBodyPart("media", new ByteArrayBody(content,
new ByteArrayInputStream(content), mediaType mediaType.getContentType().getMimeType(),
.getContentType().getMimeType(),
fileName))); fileName)));
JSONObject obj = response.getAsJson(); JSONObject obj = response.getAsJson();
return new MediaUploadResult(obj.getString("media_id"), return new MediaUploadResult(obj.getString("media_id"),