LOGGER级别优化 #86
This commit is contained in:
@@ -14,7 +14,6 @@ import com.alibaba.fastjson.TypeReference;
|
||||
import com.alibaba.fastjson.parser.deserializer.ExtraProcessor;
|
||||
import com.foxinmy.weixin4j.exception.WeixinException;
|
||||
import com.foxinmy.weixin4j.http.ContentType;
|
||||
import com.foxinmy.weixin4j.http.HttpClientException;
|
||||
import com.foxinmy.weixin4j.http.HttpHeaders;
|
||||
import com.foxinmy.weixin4j.http.HttpMethod;
|
||||
import com.foxinmy.weixin4j.http.HttpRequest;
|
||||
@@ -25,7 +24,6 @@ import com.foxinmy.weixin4j.http.apache.FormBodyPart;
|
||||
import com.foxinmy.weixin4j.http.apache.InputStreamBody;
|
||||
import com.foxinmy.weixin4j.http.apache.StringBody;
|
||||
import com.foxinmy.weixin4j.http.entity.StringEntity;
|
||||
import com.foxinmy.weixin4j.http.message.JsonMessageConverter;
|
||||
import com.foxinmy.weixin4j.http.weixin.ApiResult;
|
||||
import com.foxinmy.weixin4j.http.weixin.WeixinResponse;
|
||||
import com.foxinmy.weixin4j.model.Token;
|
||||
@@ -241,53 +239,30 @@ public class MediaApi extends MpApi {
|
||||
public MediaDownloadResult downloadMedia(String mediaId, boolean isMaterial)
|
||||
throws WeixinException {
|
||||
Token token = tokenManager.getCache();
|
||||
try {
|
||||
HttpRequest request = null;
|
||||
if (isMaterial) {
|
||||
String material_media_download_uri = getRequestUri("material_media_download_uri");
|
||||
request = new HttpRequest(HttpMethod.POST, String.format(
|
||||
material_media_download_uri, token.getAccessToken()));
|
||||
request.setEntity(new StringEntity(String.format(
|
||||
"{\"media_id\":\"%s\"}", mediaId)));
|
||||
} else {
|
||||
String meida_download_uri = getRequestUri("meida_download_uri");
|
||||
request = new HttpRequest(HttpMethod.GET, String.format(
|
||||
meida_download_uri, token.getAccessToken(), mediaId));
|
||||
}
|
||||
logger.info("weixin request >> " + request.getMethod() + " "
|
||||
+ request.getURI().toString());
|
||||
HttpResponse response = weixinExecutor.getExecuteClient().execute(
|
||||
request);
|
||||
byte[] content = IOUtil.toByteArray(response.getBody());
|
||||
HttpHeaders headers = response.getHeaders();
|
||||
String contentType = headers.getFirst(HttpHeaders.CONTENT_TYPE);
|
||||
String disposition = headers
|
||||
.getFirst(HttpHeaders.CONTENT_DISPOSITION);
|
||||
logger.info("weixin response << " + response.getProtocol()
|
||||
+ response.getStatus().toString() + "[" + contentType
|
||||
+ "]->" + disposition);
|
||||
if (JsonMessageConverter.GLOBAL.canConvert(ApiResult.class,
|
||||
response)) {
|
||||
ApiResult result = JsonMessageConverter.GLOBAL.convert(
|
||||
ApiResult.class, response);
|
||||
if (!"0".equals(result.getReturnCode())) {
|
||||
throw new WeixinException(result.getReturnCode(),
|
||||
result.getReturnMsg());
|
||||
}
|
||||
}
|
||||
String fileName = RegexUtil
|
||||
.regexFileNameFromContentDispositionHeader(disposition);
|
||||
if (StringUtil.isBlank(fileName)) {
|
||||
fileName = String.format("%s.%s", mediaId,
|
||||
contentType.split("/")[1]);
|
||||
}
|
||||
return new MediaDownloadResult(content,
|
||||
ContentType.create(contentType), fileName);
|
||||
} catch (IOException e) {
|
||||
throw new WeixinException("I/O Error on getBody", e);
|
||||
} catch (HttpClientException e) {
|
||||
throw new WeixinException(e);
|
||||
HttpRequest request = null;
|
||||
if (isMaterial) {
|
||||
String material_media_download_uri = getRequestUri("material_media_download_uri");
|
||||
request = new HttpRequest(HttpMethod.POST, String.format(
|
||||
material_media_download_uri, token.getAccessToken()));
|
||||
request.setEntity(new StringEntity(String.format(
|
||||
"{\"media_id\":\"%s\"}", mediaId)));
|
||||
} else {
|
||||
String meida_download_uri = getRequestUri("meida_download_uri");
|
||||
request = new HttpRequest(HttpMethod.GET, String.format(
|
||||
meida_download_uri, token.getAccessToken(), mediaId));
|
||||
}
|
||||
HttpResponse response = weixinExecutor.doRequest(request);
|
||||
HttpHeaders headers = response.getHeaders();
|
||||
String contentType = headers.getFirst(HttpHeaders.CONTENT_TYPE);
|
||||
String disposition = headers.getFirst(HttpHeaders.CONTENT_DISPOSITION);
|
||||
String fileName = RegexUtil
|
||||
.regexFileNameFromContentDispositionHeader(disposition);
|
||||
if (StringUtil.isBlank(fileName)) {
|
||||
fileName = String.format("%s.%s", mediaId,
|
||||
contentType.split("/")[1]);
|
||||
}
|
||||
return new MediaDownloadResult(response.getContent(),
|
||||
ContentType.create(contentType), fileName);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
|
||||
* OauthApi `oauth授权API`
|
||||
|
||||
* Pay2Api `V2支付API`
|
||||
* Pay2Api `原V2支付API`
|
||||
|
||||
* QrApi `二维码API`
|
||||
|
||||
@@ -26,4 +26,6 @@
|
||||
|
||||
* TagApi `用户标签管理API`
|
||||
|
||||
* ComponentApi `第三方组件API`
|
||||
* ComponentApi `第三方组件API`
|
||||
|
||||
* CardApi `卡券API`
|
||||
@@ -47,7 +47,7 @@ public class MediaTest extends TokenTest {
|
||||
File file = new File("/Users/jy/Downloads/weixin4j.png");
|
||||
MediaUploadResult mediaId = mediaApi.uploadMedia(false,
|
||||
new FileInputStream(file), file.getName());
|
||||
// fbyQZL96sK9evnTgDx21jPZgWAnw6YPgslNzcqLFp0lqPCD-XipoPfkwFU1OM9J_
|
||||
// PPHCwX-13V4_IdIchHIsI1VDcJyUB5ttJdnRArbAmWrNXSxX55fQ831N7B_R3l1c
|
||||
Assert.assertNotNull(mediaId);
|
||||
System.err.println(mediaId);
|
||||
}
|
||||
@@ -56,7 +56,7 @@ public class MediaTest extends TokenTest {
|
||||
public void download1() throws WeixinException, IOException {
|
||||
MediaDownloadResult content = mediaApi
|
||||
.downloadMedia(
|
||||
"DVWwU0u9ommOTPgyJszpKw5OSL9M-bdRY6gQkax1uuo",
|
||||
"PPHCwX-13V4_IdIchHIsI1VDcJyUB5ttJdnRArbAmWrNXSxX55fQ831N7B_R3l1c",
|
||||
false);
|
||||
Assert.assertTrue(content != null);
|
||||
System.err.println(content);
|
||||
|
||||
Reference in New Issue
Block a user