欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

微信公眾平臺開發(fā)中使用Java挺好實現(xiàn)一個多媒體消息回復(fù)功能

微信公眾平臺開發(fā)中使用Java挺好實現(xiàn)一個多媒體消息回復(fù)功能?相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

創(chuàng)新互聯(lián)企業(yè)建站,10年網(wǎng)站建設(shè)經(jīng)驗,專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計,有多年建站和網(wǎng)站代運營經(jīng)驗,設(shè)計師為客戶打造網(wǎng)絡(luò)企業(yè)風(fēng)格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于成都做網(wǎng)站、成都網(wǎng)站設(shè)計中不同領(lǐng)域進(jìn)行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準(zhǔn)市場調(diào)研,為客戶提供的解決方案。

(一)素材接口圖片上傳

按照之前我們的約定將接口請求的url寫入到配置文件interface_url.properties中:

#獲取token的url
tokenUrl=https://api.weixin.qq.com/cgi-bin/token
#永久多媒體文件上傳url
mediaUrl=http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token=

然后我在這里寫了一個模擬表單上傳的工具類HttpPostUploadUtil.java,如下:

package com.cuiyongzhi.wechat.util;
 
import java.io.BufferedReader; 
import java.io.DataInputStream; 
import java.io.DataOutputStream; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.InputStreamReader; 
import java.io.OutputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.util.Iterator; 
import java.util.Map; 
 
import javax.activation.MimetypesFileTypeMap;
import com.cuiyongzhi.web.util.GlobalConstants;
 
/**
 * ClassName: HttpPostUploadUtil
 * @Description: 多媒體上傳
 * @author dapengniao
 * @date 2016年3月14日 上午11:56:55
 */
public class HttpPostUploadUtil { 
   
  public String urlStr; 
   
  public HttpPostUploadUtil(){
    urlStr = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token="+GlobalConstants.getInterfaceUrl("access_token")+"&type=image"; 
  }
    
    
  
  /** 
   * 上傳圖片 
   * 
   * @param urlStr 
   * @param textMap 
   * @param fileMap 
   * @return 
   */ 
  @SuppressWarnings("rawtypes")
  public String formUpload(Map<String, String> textMap, 
      Map<String, String> fileMap) { 
    String res = ""; 
    HttpURLConnection conn = null; 
    String BOUNDARY = "---------------------------123821742118716"; //boundary就是request頭和上傳文件內(nèi)容的分隔符 
    try { 
      URL url = new URL(urlStr); 
      conn = (HttpURLConnection) url.openConnection(); 
      conn.setConnectTimeout(5000); 
      conn.setReadTimeout(30000); 
      conn.setDoOutput(true); 
      conn.setDoInput(true); 
      conn.setUseCaches(false); 
      conn.setRequestMethod("POST"); 
      conn.setRequestProperty("Connection", "Keep-Alive"); 
      conn 
          .setRequestProperty("User-Agent", 
              "Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)"); 
      conn.setRequestProperty("Content-Type", 
          "multipart/form-data; boundary=" + BOUNDARY); 
  
      OutputStream out = new DataOutputStream(conn.getOutputStream()); 
      // text 
      if (textMap != null) { 
        StringBuffer strBuf = new StringBuffer(); 
        Iterator<&#63;> iter = textMap.entrySet().iterator(); 
        while (iter.hasNext()) { 
          Map.Entry entry = (Map.Entry) iter.next(); 
          String inputName = (String) entry.getKey(); 
          String inputValue = (String) entry.getValue(); 
          if (inputValue == null) { 
            continue; 
          } 
          strBuf.append("\r\n").append("--").append(BOUNDARY).append( 
              "\r\n"); 
          strBuf.append("Content-Disposition: form-data; name=\"" 
              + inputName + "\"\r\n\r\n"); 
          strBuf.append(inputValue); 
        } 
        out.write(strBuf.toString().getBytes()); 
      } 
  
      // file 
      if (fileMap != null) { 
        Iterator<&#63;> iter = fileMap.entrySet().iterator(); 
        while (iter.hasNext()) { 
          Map.Entry entry = (Map.Entry) iter.next(); 
          String inputName = (String) entry.getKey(); 
          String inputValue = (String) entry.getValue(); 
          if (inputValue == null) { 
            continue; 
          } 
          File file = new File(inputValue); 
          String filename = file.getName(); 
          String contentType = new MimetypesFileTypeMap() 
              .getContentType(file); 
          if (filename.endsWith(".jpg")) { 
            contentType = "image/jpg"; 
          } 
          if (contentType == null || contentType.equals("")) { 
            contentType = "application/octet-stream"; 
          } 
  
          StringBuffer strBuf = new StringBuffer(); 
          strBuf.append("\r\n").append("--").append(BOUNDARY).append( 
              "\r\n"); 
          strBuf.append("Content-Disposition: form-data; name=\"" 
              + inputName + "\"; filename=\"" + filename 
              + "\"\r\n"); 
          strBuf.append("Content-Type:" + contentType + "\r\n\r\n"); 
  
          out.write(strBuf.toString().getBytes()); 
  
          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[] endData = ("\r\n--" + BOUNDARY + "--\r\n").getBytes(); 
      out.write(endData); 
      out.flush(); 
      out.close(); 
  
      // 讀取返回數(shù)據(jù) 
      StringBuffer strBuf = new StringBuffer(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader( 
          conn.getInputStream())); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
        strBuf.append(line).append("\n"); 
      } 
      res = strBuf.toString(); 
      reader.close(); 
      reader = null; 
    } catch (Exception e) { 
      System.out.println("發(fā)送POST請求出錯。" + urlStr); 
      e.printStackTrace(); 
    } finally { 
      if (conn != null) { 
        conn.disconnect(); 
        conn = null; 
      } 
    } 
    return res; 
  } 
  
}

我們將工具類寫好之后就需要在我們消息回復(fù)中加入對應(yīng)的響應(yīng)代碼,這里為了測試我將響應(yīng)代碼加在【關(guān)注事件】中!

(二)圖片回復(fù)

這里我們需要修改的是我們的【事件消息業(yè)務(wù)分發(fā)器】的代碼,這里我們將我們的回復(fù)加在【關(guān)注事件】中,簡單代碼如下:

String openid = map.get("FromUserName"); // 用戶openid
String mpid = map.get("ToUserName"); // 公眾號原始ID
ImageMessage imgmsg = new ImageMessage();
imgmsg.setToUserName(openid);
imgmsg.setFromUserName(mpid);
imgmsg.setCreateTime(new Date().getTime());
imgmsg.setMsgType(MessageUtil.RESP_MESSAGE_TYPE_Image);
if (map.get("Event").equals(MessageUtil.EVENT_TYPE_SUBSCRIBE)) { // 關(guān)注事件
  System.out.println("==============這是關(guān)注事件!");
  Image img = new Image();
  HttpPostUploadUtil util=new HttpPostUploadUtil();
  String filepath="H:\\1.jpg"; 
  Map<String, String> textMap = new HashMap<String, String>(); 
  textMap.put("name", "testname"); 
  Map<String, String> fileMap = new HashMap<String, String>(); 
  fileMap.put("userfile", filepath); 
  String mediaidrs = util.formUpload(textMap, fileMap);
  System.out.println(mediaidrs);
  String mediaid=JSONObject.fromObject(mediaidrs).getString("media_id");
  img.setMediaId(mediaid);
  imgmsg.setImage(img);
  return MessageUtil.imageMessageToXml(imgmsg);
}

到這里代碼基本就已經(jīng)完成整個的圖片消息回復(fù)的內(nèi)容,同樣的不論是語音回復(fù)、視頻回復(fù)等流程都是一樣的,所以其他的就不在做過多的講述了,最后的大致效果如下:

微信公眾平臺開發(fā)中使用Java挺好實現(xiàn)一個多媒體消息回復(fù)功能

看完上述內(nèi)容,你們掌握微信公眾平臺開發(fā)中使用Java挺好實現(xiàn)一個多媒體消息回復(fù)功能的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

分享文章:微信公眾平臺開發(fā)中使用Java挺好實現(xiàn)一個多媒體消息回復(fù)功能
分享鏈接:http://chinadenli.net/article20/ihghco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計小程序開發(fā)、營銷型網(wǎng)站建設(shè)、移動網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化、用戶體驗

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
天堂热东京热男人天堂| 福利在线午夜绝顶三级| 欧美二区视频在线观看| 国产精品亚洲精品亚洲| 国产男女激情在线视频| 色无极东京热男人的天堂| 99热九九在线中文字幕| 亚洲国产精品av在线观看| 欧美精品在线观看国产| 欧美国产日产在线观看| 精品一区二区三区免费看| 日本黄色美女日本黄色| 欧美日韩久久精品一区二区| 大香蕉再在线大香蕉再在线| 国产一区二区久久综合| 日韩精品一区二区一牛| 日韩综合国产欧美一区| 老司机激情五月天在线不卡| 九九热精彩视频在线播放| 黄片美女在线免费观看| 偷自拍亚洲欧美一区二页| 色婷婷成人精品综合一区| 欧美成人黄色一区二区三区| 亚洲国产中文字幕在线观看| 欧美日韩亚洲精品内裤| 不卡中文字幕在线免费看| 成人免费观看视频免费| 国产麻豆一线二线三线| 国产亚洲二区精品美女久久| 日本少妇三级三级三级| 91久久精品国产一区蜜臀| 大尺度剧情国产在线视频| 欧美亚洲三级视频在线观看| 国产熟女一区二区不卡| 国产一区二区熟女精品免费| 日韩一区二区三区高清在| 国产级别精品一区二区视频| 99视频精品免费视频| 国产一级不卡视频在线观看| 亚洲欧美日韩综合在线成成| 人妻少妇系列中文字幕|