首先需要注意:
缩略图(thumb):64KB,支持JPG格式
所以,需要使用软件将图片压缩到64kb的大小,我使用的是格式工厂
测试类
下面代码用来获取微信服务器返回的thumb_media_id
@Testpublic void testMusicThumbMediaId() throws Exception{String path = "D:/wxSource/Wake.jpg";String mediaId = weiXinUtil.upload(path, AccessToken().getAccess_token(), "thumb");//{"type":"thumb","thumb_media_id":"Zq1X4RRjoPGuFCDMC9pdvWkDvkBJej5811NGhI8VnKgvtHCogfZOZsy-Q5WwP4j2","created_at":1504599769}System.out.println("上传musicThumbImage后的thumb_media_id:"+mediaId);}
public static String upload(String filePath,String accessToken,String type) throws IOException{File file = new File(filePath);if (!file.isFile() || !ists()) {throw new IOException("文件不存在");}String url = place("ACCESS_TOKEN", accessToken).replaceAll("TYPE", type);URL urlObj = new URL(url);HttpURLConnection connection = (HttpURLConnection)urlObj.openConnection();connection.setRequestMethod("POST");connection.setDoInput(true);connection.setDoOutput(true);connection.setUseCaches(false);//设置请求头connection.setRequestProperty("Connection", "Keep-Alive");connection.setRequestProperty("Charset", "utf-8");//设置边界String BOUNDARY = "----------"+System.currentTimeMillis();connection.setRequestProperty("Content-Type","multipart/form-data;boundary="+BOUNDARY);StringBuilder sb = new StringBuilder();sb.append("--");sb.append(BOUNDARY);sb.append("rn");sb.append("Content-Disposition;form-data;name="flie";filename=""Name()+""rn");sb.append("Content-Type:application/octet-streamrnrn"); byte[] head = sb.toString().getBytes("utf-8");//获取输出流OutputStream out = new OutputStream());out.write(head);//文件正文部分,把文件以流的方式push到url中DataInputStream in = new DataInputStream(new FileInputStream(file));int bytes=0;byte[] bufferOut = new byte[1024];while((bytes = in.read(bufferOut))!=-1){out.write(bufferOut,0,bytes);}in.close();//结尾部分byte[] foot = ("rn--"+BOUNDARY+"--rn").getBytes("utf-8");out.write(foot);out.close();StringBuffer buffer = new StringBuffer();BufferedReader reader = null;String result = null;try {//读取url响应结果reader=new BufferedReader(new InputStream() ));String line = null;while((line = adLine())!=null){buffer.append(line);}if (result==null) {resultString();}} catch (Exception e) {// TODO: handle exception} finally {if (reader!=null) {reader.close();}}JSONObject jsonObject = JSONObject.fromObject(result);System.out.println(jsonObject);String typeName = "media_id";//上传image,video,voice后返回的media_id名称不同if (!"image".equals(type)) {typeName = type+"_media_id";}System.out.println("typeName="+typeName);String mediaId = String(typeName);return mediaId;}
public class Music {private String Title;private String Description;private String MusicUrl;private String HQMusicUrl;private String ThumbMediaId;public String getTitle() {return Title;}public void setTitle(String title) {Title = title;}public String getDescription() {return Description;}public void setDescription(String description) {Description = description;}public String getMusicUrl() {return MusicUrl;}public void setMusicUrl(String musicUrl) {MusicUrl = musicUrl;}public String getHQMusicUrl() {return HQMusicUrl;}public void setHQMusicUrl(String hQMusicUrl) {HQMusicUrl = hQMusicUrl;}public String getThumbMediaId() {return ThumbMediaId;}public void setThumbMediaId(String thumbMediaId) {ThumbMediaId = thumbMediaId;}
public class musicMessage extends baseMessage{private Music Music;public Music getMusic() {return Music;}public void setMusic(Music music) {Music = music;}}
public static String musicMessageToXml(musicMessage musicMessage){XStream stream = new XStream();//System.out.XML(text));//全类名&Message>stream.alias("xml",Class());//首尾全类名改成<xml>XML(musicMessage);}
public static String sendMusicMessage(String toUserName,String fromUserName) throws Exception{String message = null;String thumb_mdeia_id ="mGE_mRMLGYnZLsGHMaa-_eVuOGkpS0s4YUK_6t7IAc61ThLRVUnJaLpZ3V1cenO8";Music music = new Music();music.setTitle("Wake");music.setDescription("演唱者为hillsong young and free乐队,歌曲隶属于专辑《We Are Young and Free》");music.setMusicUrl(".mp3");music.setHQMusicUrl(".mp3");music.setThumbMediaId(thumb_mdeia_id);//检查thumb_media_id是否在有效期内musicMessage musicMessage = new musicMessage();musicMessage.setToUserName(fromUserName);musicMessage.setFromUserName(toUserName);musicMessage.setCreateTime(new Date().getTime());musicMessage.setMsgType(userResp_message_type_music);musicMessage.setMusic(music);message = musicMessageToXml(musicMessage);System.out.println(message);return message;}
if ("C".("Content").toUpperCase())) {reponseMessage = messageUtil.sendMusicMessage(toUserName, fromUserName);}
本文发布于:2024-02-04 12:49:47,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170707639155725.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |