記事ディレクトリ
1つ、pom依存
<!-- 将xml包解析成Map -->
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<!-- 将Map解析成XML包 -->
<dependency>
<groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>1.4.11.1</version>
</dependency>
2、エンティティクラスコード
xmlデータパケット形式
注:
1。サムネイルのメディアIDパラメーターは、マテリアル管理のインターフェイスを介してアップロードされたマルチメディアファイルから取得したIDです
。2。MusicUrlをブラウザーで開いて、再生できるかどうかを確認します。私は音楽ファイルです( mp3形式)をFastDFSにアップロードすると、返されたパスをブラウザで開いて再生できます。
3.パラメータ名はxml形式の名前であることに注意してください。次のパラメータの説明MusicUrlはMusicURLとして記述されているため、解析できません。xmlの名前に従って記述する必要があります。
BUG:
HQMusicUrlパラメータは必要ないと思ったので、上記のパラメータをすべて書き込むのが最善です。それを記述しなかった場合、公式アカウントを解析できず、「公式アカウントが失敗しました」と返され続けました。
音楽
@Data
public class Music {
/**
* 音乐标题
*/
@XStreamAlias("Title")
private String title ;
/**
* 音乐描述
*/
@XStreamAlias("Description")
private String description;
/**
* 音乐连接
*/
@XStreamAlias("MusicUrl")
private String musicURL;
/**
* 高质量音乐链接,WIFI环境优先使用该链接播放音乐
*/
@XStreamAlias("HQMusicUrl")
private String hQMusicUrl;
/**
* 缩略图的媒体id,通过素材管理中的接口上传多媒体文件,得到的id
*/
@XStreamAlias("ThumbMediaId")
private String thumbMediaId;
}
BaseMessage
@Data
@XStreamAlias("xml")
public class BaseMessage {
@XStreamAlias("ToUserName")
private String toUserName;
@XStreamAlias("FromUserName")
private String fromUserName;
@XStreamAlias("CreateTime")
private String createTime;
@XStreamAlias("MsgType")
private String msgType;
@XStreamAlias("MsgId")
private String msgId;
public BaseMessage(Map<String ,String> map){
this.fromUserName=map.get("ToUserName");
this.toUserName=map.get("FromUserName");
this.createTime = System.currentTimeMillis()/1000+"";
}
public BaseMessage(){
}
}
MusicMessage
@Data
@XStreamAlias("xml")
public class MusicMessage extends BaseMessage{
@XStreamAlias("Music")
private Music music;
public MusicMessage(Map<String ,String> map,Music music){
super(map);
this.setMsgType("music");
this.music = music;
}
public MusicMessage(){
}
}
効果
バグ
によってアップロードされたサムネイルは表示されません。
解決する。