mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-24 16:18:51 +08:00
#252 原有图文素材管理接口增加留言管理所需两个参数:need_open_comment 和 only_fans_can_comment
This commit is contained in:
parent
554fd08fb8
commit
eaad6367de
@ -77,19 +77,19 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InputStream materialImageOrVoiceDownload(String media_id) throws WxErrorException {
|
public InputStream materialImageOrVoiceDownload(String mediaId) throws WxErrorException {
|
||||||
return this.wxMpService.execute(MaterialVoiceAndImageDownloadRequestExecutor
|
return this.wxMpService.execute(MaterialVoiceAndImageDownloadRequestExecutor
|
||||||
.create(this.wxMpService.getRequestHttp(), this.wxMpService.getWxMpConfigStorage().getTmpDirFile()), MATERIAL_GET_URL, media_id);
|
.create(this.wxMpService.getRequestHttp(), this.wxMpService.getWxMpConfigStorage().getTmpDirFile()), MATERIAL_GET_URL, mediaId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMpMaterialVideoInfoResult materialVideoInfo(String media_id) throws WxErrorException {
|
public WxMpMaterialVideoInfoResult materialVideoInfo(String mediaId) throws WxErrorException {
|
||||||
return this.wxMpService.execute(MaterialVideoInfoRequestExecutor.create(this.wxMpService.getRequestHttp()), MATERIAL_GET_URL, media_id);
|
return this.wxMpService.execute(MaterialVideoInfoRequestExecutor.create(this.wxMpService.getRequestHttp()), MATERIAL_GET_URL, mediaId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public WxMpMaterialNews materialNewsInfo(String media_id) throws WxErrorException {
|
public WxMpMaterialNews materialNewsInfo(String mediaId) throws WxErrorException {
|
||||||
return this.wxMpService.execute(MaterialNewsInfoRequestExecutor.create(this.wxMpService.getRequestHttp()), MATERIAL_GET_URL, media_id);
|
return this.wxMpService.execute(MaterialNewsInfoRequestExecutor.create(this.wxMpService.getRequestHttp()), MATERIAL_GET_URL, mediaId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -104,8 +104,8 @@ public class WxMpMaterialServiceImpl implements WxMpMaterialService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean materialDelete(String media_id) throws WxErrorException {
|
public boolean materialDelete(String mediaId) throws WxErrorException {
|
||||||
return this.wxMpService.execute(MaterialDeleteRequestExecutor.create(this.wxMpService.getRequestHttp()), MATERIAL_DEL_URL, media_id);
|
return this.wxMpService.execute(MaterialDeleteRequestExecutor.create(this.wxMpService.getRequestHttp()), MATERIAL_DEL_URL, mediaId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -4,12 +4,16 @@ import me.chanjar.weixin.common.util.ToStringUtils;
|
|||||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class WxMpMaterialNews implements Serializable {
|
public class WxMpMaterialNews implements Serializable {
|
||||||
private static final long serialVersionUID = -3283203652013494976L;
|
private static final long serialVersionUID = -3283203652013494976L;
|
||||||
|
|
||||||
|
private Date createdTime;
|
||||||
|
private Date updatedTime;
|
||||||
|
|
||||||
private List<WxMpMaterialNewsArticle> articles = new ArrayList<>();
|
private List<WxMpMaterialNewsArticle> articles = new ArrayList<>();
|
||||||
|
|
||||||
public List<WxMpMaterialNewsArticle> getArticles() {
|
public List<WxMpMaterialNewsArticle> getArticles() {
|
||||||
@ -28,9 +32,25 @@ public class WxMpMaterialNews implements Serializable {
|
|||||||
return this.articles == null || this.articles.isEmpty();
|
return this.articles == null || this.articles.isEmpty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Date getCreatedTime() {
|
||||||
|
return this.createdTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCreatedTime(Date createdTime) {
|
||||||
|
this.createdTime = createdTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getUpdatedTime() {
|
||||||
|
return this.updatedTime;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUpdatedTime(Date updatedTime) {
|
||||||
|
this.updatedTime = updatedTime;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return ToStringUtils.toSimpleString(this);
|
return this.toJson();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -44,6 +64,8 @@ public class WxMpMaterialNews implements Serializable {
|
|||||||
* 6. digest 图文消息的描述
|
* 6. digest 图文消息的描述
|
||||||
* 7. showCoverPic 是否显示封面,true为显示,false为不显示
|
* 7. showCoverPic 是否显示封面,true为显示,false为不显示
|
||||||
* 8. url 点击图文消息跳转链接
|
* 8. url 点击图文消息跳转链接
|
||||||
|
* 9. need_open_comment(新增字段) 否 Uint32 是否打开评论,0不打开,1打开
|
||||||
|
* 10. only_fans_can_comment(新增字段) 否 Uint32 是否粉丝才可评论,0所有人可评论,1粉丝才可评论
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author chanjarster
|
* @author chanjarster
|
||||||
@ -87,6 +109,18 @@ public class WxMpMaterialNews implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String url;
|
private String url;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* need_open_comment
|
||||||
|
* 是否打开评论,0不打开,1打开
|
||||||
|
*/
|
||||||
|
private Boolean needOpenComment;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* only_fans_can_comment
|
||||||
|
* 是否粉丝才可评论,0所有人可评论,1粉丝才可评论
|
||||||
|
*/
|
||||||
|
private Boolean onlyFansCanComment;
|
||||||
|
|
||||||
public String getThumbMediaId() {
|
public String getThumbMediaId() {
|
||||||
return this.thumbMediaId;
|
return this.thumbMediaId;
|
||||||
}
|
}
|
||||||
@ -159,6 +193,22 @@ public class WxMpMaterialNews implements Serializable {
|
|||||||
this.thumbUrl = thumbUrl;
|
this.thumbUrl = thumbUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean getNeedOpenComment() {
|
||||||
|
return this.needOpenComment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNeedOpenComment(Boolean needOpenComment) {
|
||||||
|
this.needOpenComment = needOpenComment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Boolean getOnlyFansCanComment() {
|
||||||
|
return this.onlyFansCanComment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOnlyFansCanComment(Boolean onlyFansCanComment) {
|
||||||
|
this.onlyFansCanComment = onlyFansCanComment;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return ToStringUtils.toSimpleString(this);
|
return ToStringUtils.toSimpleString(this);
|
||||||
|
@ -1,17 +1,16 @@
|
|||||||
package me.chanjar.weixin.mp.bean.material;
|
package me.chanjar.weixin.mp.bean.material;
|
||||||
|
|
||||||
|
import me.chanjar.weixin.common.util.ToStringUtils;
|
||||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
||||||
public class WxMpMaterialUploadResult implements Serializable {
|
public class WxMpMaterialUploadResult implements Serializable {
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
private static final long serialVersionUID = -128818731449449537L;
|
private static final long serialVersionUID = -128818731449449537L;
|
||||||
private String mediaId;
|
private String mediaId;
|
||||||
private String url;
|
private String url;
|
||||||
|
private Integer errCode;
|
||||||
|
private String errMsg;
|
||||||
|
|
||||||
public static WxMpMaterialUploadResult fromJson(String json) {
|
public static WxMpMaterialUploadResult fromJson(String json) {
|
||||||
return WxMpGsonBuilder.create().fromJson(json, WxMpMaterialUploadResult.class);
|
return WxMpGsonBuilder.create().fromJson(json, WxMpMaterialUploadResult.class);
|
||||||
@ -33,9 +32,25 @@ public class WxMpMaterialUploadResult implements Serializable {
|
|||||||
this.url = url;
|
this.url = url;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getErrCode() {
|
||||||
|
return this.errCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrCode(Integer errCode) {
|
||||||
|
this.errCode = errCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getErrMsg() {
|
||||||
|
return this.errMsg;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setErrMsg(String errMsg) {
|
||||||
|
this.errMsg = errMsg;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "WxMpMaterialUploadResult [media_id=" + this.mediaId + ", url=" + this.url + "]";
|
return ToStringUtils.toSimpleString(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -13,13 +13,11 @@ public abstract class MaterialVoiceAndImageDownloadRequestExecutor<H, P> impleme
|
|||||||
protected RequestHttp<H, P> requestHttp;
|
protected RequestHttp<H, P> requestHttp;
|
||||||
protected File tmpDirFile;
|
protected File tmpDirFile;
|
||||||
|
|
||||||
|
|
||||||
public MaterialVoiceAndImageDownloadRequestExecutor(RequestHttp requestHttp, File tmpDirFile) {
|
public MaterialVoiceAndImageDownloadRequestExecutor(RequestHttp requestHttp, File tmpDirFile) {
|
||||||
this.requestHttp = requestHttp;
|
this.requestHttp = requestHttp;
|
||||||
this.tmpDirFile = tmpDirFile;
|
this.tmpDirFile = tmpDirFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static RequestExecutor<InputStream, String> create(RequestHttp requestHttp, File tmpDirFile) {
|
public static RequestExecutor<InputStream, String> create(RequestHttp requestHttp, File tmpDirFile) {
|
||||||
switch (requestHttp.getRequestType()) {
|
switch (requestHttp.getRequestType()) {
|
||||||
case APACHE_HTTP:
|
case APACHE_HTTP:
|
||||||
|
@ -14,6 +14,8 @@ import org.apache.http.client.methods.CloseableHttpResponse;
|
|||||||
import org.apache.http.client.methods.HttpPost;
|
import org.apache.http.client.methods.HttpPost;
|
||||||
import org.apache.http.entity.StringEntity;
|
import org.apache.http.entity.StringEntity;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@ -23,6 +25,8 @@ import java.util.Map;
|
|||||||
* Created by ecoolper on 2017/5/5.
|
* Created by ecoolper on 2017/5/5.
|
||||||
*/
|
*/
|
||||||
public class ApacheMaterialNewsInfoRequestExecutor extends MaterialNewsInfoRequestExecutor<CloseableHttpClient, HttpHost> {
|
public class ApacheMaterialNewsInfoRequestExecutor extends MaterialNewsInfoRequestExecutor<CloseableHttpClient, HttpHost> {
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
|
|
||||||
public ApacheMaterialNewsInfoRequestExecutor(RequestHttp requestHttp) {
|
public ApacheMaterialNewsInfoRequestExecutor(RequestHttp requestHttp) {
|
||||||
super(requestHttp);
|
super(requestHttp);
|
||||||
}
|
}
|
||||||
@ -40,6 +44,7 @@ public class ApacheMaterialNewsInfoRequestExecutor extends MaterialNewsInfoReque
|
|||||||
httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params)));
|
httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params)));
|
||||||
try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
|
try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost)) {
|
||||||
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
|
String responseContent = Utf8ResponseHandler.INSTANCE.handleResponse(response);
|
||||||
|
this.logger.debug("响应原始数据:{}", responseContent);
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
throw new WxErrorException(error);
|
throw new WxErrorException(error);
|
||||||
|
@ -18,6 +18,7 @@ import java.io.ByteArrayInputStream;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -41,10 +42,10 @@ public class ApacheMaterialVoiceAndImageDownloadRequestExecutor extends Material
|
|||||||
params.put("media_id", materialId);
|
params.put("media_id", materialId);
|
||||||
httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params)));
|
httpPost.setEntity(new StringEntity(WxGsonBuilder.create().toJson(params)));
|
||||||
try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost);
|
try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpPost);
|
||||||
InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response);) {
|
InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response)) {
|
||||||
// 下载媒体文件出错
|
// 下载媒体文件出错
|
||||||
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
||||||
String responseContentString = new String(responseContent, "UTF-8");
|
String responseContentString = new String(responseContent, StandardCharsets.UTF_8);
|
||||||
if (responseContentString.length() < 100) {
|
if (responseContentString.length() < 100) {
|
||||||
try {
|
try {
|
||||||
WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class);
|
WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class);
|
||||||
|
@ -12,6 +12,8 @@ import me.chanjar.weixin.common.util.http.RequestHttp;
|
|||||||
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
|
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
|
||||||
import me.chanjar.weixin.mp.util.http.MaterialNewsInfoRequestExecutor;
|
import me.chanjar.weixin.mp.util.http.MaterialNewsInfoRequestExecutor;
|
||||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@ -19,6 +21,7 @@ import java.io.IOException;
|
|||||||
* Created by ecoolper on 2017/5/5.
|
* Created by ecoolper on 2017/5/5.
|
||||||
*/
|
*/
|
||||||
public class JoddMaterialNewsInfoRequestExecutor extends MaterialNewsInfoRequestExecutor<HttpConnectionProvider, ProxyInfo> {
|
public class JoddMaterialNewsInfoRequestExecutor extends MaterialNewsInfoRequestExecutor<HttpConnectionProvider, ProxyInfo> {
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
public JoddMaterialNewsInfoRequestExecutor(RequestHttp requestHttp) {
|
public JoddMaterialNewsInfoRequestExecutor(RequestHttp requestHttp) {
|
||||||
super(requestHttp);
|
super(requestHttp);
|
||||||
}
|
}
|
||||||
@ -36,6 +39,7 @@ public class JoddMaterialNewsInfoRequestExecutor extends MaterialNewsInfoRequest
|
|||||||
response.charset(StringPool.UTF_8);
|
response.charset(StringPool.UTF_8);
|
||||||
|
|
||||||
String responseContent = response.bodyText();
|
String responseContent = response.bodyText();
|
||||||
|
this.logger.debug("响应原始数据:{}", responseContent);
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
throw new WxErrorException(error);
|
throw new WxErrorException(error);
|
||||||
|
@ -17,6 +17,7 @@ import java.io.ByteArrayInputStream;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by ecoolper on 2017/5/5.
|
* Created by ecoolper on 2017/5/5.
|
||||||
@ -40,7 +41,7 @@ public class JoddMaterialVoiceAndImageDownloadRequestExecutor extends MaterialVo
|
|||||||
try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
|
try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
|
||||||
// 下载媒体文件出错
|
// 下载媒体文件出错
|
||||||
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
||||||
String responseContentString = new String(responseContent, "UTF-8");
|
String responseContentString = new String(responseContent, StandardCharsets.UTF_8);
|
||||||
if (responseContentString.length() < 100) {
|
if (responseContentString.length() < 100) {
|
||||||
try {
|
try {
|
||||||
WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class);
|
WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class);
|
||||||
|
@ -8,6 +8,8 @@ import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
|
|||||||
import me.chanjar.weixin.mp.util.http.MaterialNewsInfoRequestExecutor;
|
import me.chanjar.weixin.mp.util.http.MaterialNewsInfoRequestExecutor;
|
||||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
|
||||||
import okhttp3.*;
|
import okhttp3.*;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
@ -15,6 +17,7 @@ import java.io.IOException;
|
|||||||
* Created by ecoolper on 2017/5/5.
|
* Created by ecoolper on 2017/5/5.
|
||||||
*/
|
*/
|
||||||
public class OkhttpMaterialNewsInfoRequestExecutor extends MaterialNewsInfoRequestExecutor<ConnectionPool, OkHttpProxyInfo> {
|
public class OkhttpMaterialNewsInfoRequestExecutor extends MaterialNewsInfoRequestExecutor<ConnectionPool, OkHttpProxyInfo> {
|
||||||
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
||||||
public OkhttpMaterialNewsInfoRequestExecutor(RequestHttp requestHttp) {
|
public OkhttpMaterialNewsInfoRequestExecutor(RequestHttp requestHttp) {
|
||||||
super(requestHttp);
|
super(requestHttp);
|
||||||
}
|
}
|
||||||
@ -44,6 +47,7 @@ public class OkhttpMaterialNewsInfoRequestExecutor extends MaterialNewsInfoReque
|
|||||||
|
|
||||||
Response response = client.newCall(request).execute();
|
Response response = client.newCall(request).execute();
|
||||||
String responseContent = response.body().string();
|
String responseContent = response.body().string();
|
||||||
|
this.logger.debug("响应原始数据:{}", responseContent);
|
||||||
|
|
||||||
WxError error = WxError.fromJson(responseContent);
|
WxError error = WxError.fromJson(responseContent);
|
||||||
if (error.getErrorCode() != 0) {
|
if (error.getErrorCode() != 0) {
|
||||||
|
@ -13,6 +13,7 @@ import java.io.ByteArrayInputStream;
|
|||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by ecoolper on 2017/5/5.
|
* Created by ecoolper on 2017/5/5.
|
||||||
@ -50,7 +51,7 @@ public class OkhttpMaterialVoiceAndImageDownloadRequestExecutor extends Material
|
|||||||
|
|
||||||
// 下载媒体文件出错
|
// 下载媒体文件出错
|
||||||
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
byte[] responseContent = IOUtils.toByteArray(inputStream);
|
||||||
String responseContentString = new String(responseContent, "UTF-8");
|
String responseContentString = new String(responseContent, StandardCharsets.UTF_8);
|
||||||
if (responseContentString.length() < 100) {
|
if (responseContentString.length() < 100) {
|
||||||
try {
|
try {
|
||||||
WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class);
|
WxError wxError = WxGsonBuilder.create().fromJson(responseContentString, WxError.class);
|
||||||
|
@ -11,6 +11,7 @@ package me.chanjar.weixin.mp.util.json;
|
|||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
import me.chanjar.weixin.common.util.json.GsonHelper;
|
import me.chanjar.weixin.common.util.json.GsonHelper;
|
||||||
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
|
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
|
||||||
|
import org.apache.commons.lang3.BooleanUtils;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
|
||||||
@ -37,6 +38,16 @@ public class WxMpMaterialNewsArticleGsonAdapter implements JsonSerializer<WxMpMa
|
|||||||
if (null != article.getUrl()) {
|
if (null != article.getUrl()) {
|
||||||
articleJson.addProperty("url", article.getUrl());
|
articleJson.addProperty("url", article.getUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (null != article.getNeedOpenComment()) {
|
||||||
|
articleJson.addProperty("need_open_comment",
|
||||||
|
BooleanUtils.toInteger(article.getNeedOpenComment(), 1, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (null != article.getOnlyFansCanComment()) {
|
||||||
|
articleJson.addProperty("only_fans_can_comment",
|
||||||
|
BooleanUtils.toInteger(article.getOnlyFansCanComment(), 1, 0));
|
||||||
|
}
|
||||||
return articleJson;
|
return articleJson;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,6 +92,16 @@ public class WxMpMaterialNewsArticleGsonAdapter implements JsonSerializer<WxMpMa
|
|||||||
if (url != null && !url.isJsonNull()) {
|
if (url != null && !url.isJsonNull()) {
|
||||||
article.setUrl(GsonHelper.getAsString(url));
|
article.setUrl(GsonHelper.getAsString(url));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JsonElement needOpenComment = articleInfo.get("need_open_comment");
|
||||||
|
if (needOpenComment != null && !needOpenComment.isJsonNull()) {
|
||||||
|
article.setNeedOpenComment(GsonHelper.getAsBoolean(needOpenComment));
|
||||||
|
}
|
||||||
|
|
||||||
|
JsonElement onlyFansCanComment = articleInfo.get("only_fans_can_comment");
|
||||||
|
if (onlyFansCanComment != null && !onlyFansCanComment.isJsonNull()) {
|
||||||
|
article.setOnlyFansCanComment(GsonHelper.getAsBoolean(onlyFansCanComment));
|
||||||
|
}
|
||||||
return article;
|
return article;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,9 +9,11 @@
|
|||||||
package me.chanjar.weixin.mp.util.json;
|
package me.chanjar.weixin.mp.util.json;
|
||||||
|
|
||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
|
import me.chanjar.weixin.common.util.json.GsonHelper;
|
||||||
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
|
import me.chanjar.weixin.mp.bean.material.WxMpMaterialNews;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
public class WxMpMaterialNewsGsonAdapter implements JsonSerializer<WxMpMaterialNews>, JsonDeserializer<WxMpMaterialNews> {
|
public class WxMpMaterialNewsGsonAdapter implements JsonSerializer<WxMpMaterialNews>, JsonDeserializer<WxMpMaterialNews> {
|
||||||
|
|
||||||
@ -41,6 +43,17 @@ public class WxMpMaterialNewsGsonAdapter implements JsonSerializer<WxMpMaterialN
|
|||||||
wxMpMaterialNews.addArticle(article);
|
wxMpMaterialNews.addArticle(article);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (json.get("create_time") != null && !json.get("create_time").isJsonNull()) {
|
||||||
|
Date createTime = new Date(GsonHelper.getAsLong(json.get("create_time")));
|
||||||
|
wxMpMaterialNews.setCreatedTime(createTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (json.get("update_time") != null && !json.get("update_time").isJsonNull()) {
|
||||||
|
Date updateTime = new Date(GsonHelper.getAsLong(json.get("update_time")));
|
||||||
|
wxMpMaterialNews.setUpdatedTime(updateTime);
|
||||||
|
}
|
||||||
|
|
||||||
return wxMpMaterialNews;
|
return wxMpMaterialNews;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -175,7 +175,7 @@ public class WxMpMaterialServiceImplTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dependsOnMethods = {"testAddNews"})
|
@Test(dependsOnMethods = {"testAddNews","testUploadMaterial"})
|
||||||
public void testGetNewsInfo() throws WxErrorException {
|
public void testGetNewsInfo() throws WxErrorException {
|
||||||
WxMpMaterialNews wxMpMaterialNewsSingle = this.wxService
|
WxMpMaterialNews wxMpMaterialNewsSingle = this.wxService
|
||||||
.getMaterialService().materialNewsInfo(this.singleNewsMediaId);
|
.getMaterialService().materialNewsInfo(this.singleNewsMediaId);
|
||||||
@ -183,6 +183,9 @@ public class WxMpMaterialServiceImplTest {
|
|||||||
.getMaterialService().materialNewsInfo(this.multiNewsMediaId);
|
.getMaterialService().materialNewsInfo(this.multiNewsMediaId);
|
||||||
assertNotNull(wxMpMaterialNewsSingle);
|
assertNotNull(wxMpMaterialNewsSingle);
|
||||||
assertNotNull(wxMpMaterialNewsMultiple);
|
assertNotNull(wxMpMaterialNewsMultiple);
|
||||||
|
|
||||||
|
System.out.println(wxMpMaterialNewsSingle);
|
||||||
|
System.out.println(wxMpMaterialNewsMultiple);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(dependsOnMethods = {"testGetNewsInfo"})
|
@Test(dependsOnMethods = {"testGetNewsInfo"})
|
||||||
|
Loading…
Reference in New Issue
Block a user