日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信上传素材 java_微信素材上传(JAVA)

發布時間:2023/12/9 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信上传素材 java_微信素材上传(JAVA) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

public String uploadMaterial(String url,InputStream sbs,String filelength,String filename, String type) throws Exception {try {

DataInputStream in=new DataInputStream(sbs);url = url.replace("TYPE", type);URL urlObj = new URL(url);

// 創建Http連接HttpURLConnection conn = (HttpURLConnection) urlObj.openConnection();conn.setRequestMethod("POST");conn.setDoInput(true);conn.setDoOutput(true);conn.setUseCaches(false); // 使用post提交需要設置忽略緩存

// 消息請求頭信息conn.setRequestProperty("Connection", "Keep-Alive");conn.setRequestProperty("Charset", "UTF-8");

// 設置邊界String BOUNDARY = "----------" + System.currentTimeMillis();conn.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + BOUNDARY);

StringBuilder sb = new StringBuilder();sb.append("--"); // 必須多兩道線sb.append(BOUNDARY);sb.append("\r\n");sb.append("Content-Disposition:form-data;name=\"media\";filename=\"" + filename + "\";filelength=\"" + filelength + "\"\r\n");sb.append("Content-Type:application/octet-stream\r\n\r\n");

byte[] head = sb.toString().getBytes("utf-8");

// 創建輸出流OutputStream out = new DataOutputStream(conn.getOutputStream());// 獲得輸出流表頭out.write(head);

// 文件正文部分//DataInputStream in=new DataInputStream(new ByteArrayInputStream(byts.getBytes(CharEncoding.UTF_8)));//in=new DataInputStream(meidaConn.getInputStream());int bytes = 0;byte[] bufferOut = new byte[1024 * 1024 * 10]; // 10Mwhile ((bytes = in.read(bufferOut)) != -1) {out.write(bufferOut, 0, bytes);}

/*對類型為video的素材進行特殊處理*/if ("video".equals(type)) {out.write(("--" + BOUNDARY + "\r\n").getBytes());out.write("Content-Disposition: form-data; name=\"description\";\r\n\r\n".getBytes());out.write(String.format("{\"title\":\"%s\", \"introduction\":\"%s\"}", filename, "miaoshu").getBytes());}

in.close();

// 結尾byte[] foot = ("\r\n--" + BOUNDARY + "--\r\n").getBytes("utf-8");out.write(foot);out.flush();out.close();

// 獲取響應StringBuffer buffer = new StringBuffer();BufferedReader reader = null;String result = null;try {reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));String line = null;while ((line = reader.readLine()) != null) {buffer.append(line);}if (result == null) {result = buffer.toString();}} catch (IOException e) {e.printStackTrace();} finally {reader.close();}

logger.info("uploadMaterial-result:" + result);return result;} catch (Exception e) {logger.error("uploadMaterial-ex:" + e.getMessage());throw e;}

}

public enum WxMaterialType {

WX_MATERIALTYPE_NEWS("news"), // 圖文WX_MATERIALTYPE_IMAGE("image"), // ??WX_MATERIALTYPE_VOICE("voice"), // 語音WX_MATERIALTYPE_VIDEO("video"),// 視頻WX_MATERIALTYPE_IMG("txtimg");//圖文中的圖片,僅在上傳圖文消息內的圖片獲取URL時使用

private String type;

WxMaterialType(String type) {this.type = type;}

public String getType() {return type;}

public void setType(String type) {this.type = type;}}

來源:博客園

作者:chuntao

鏈接:https://www.cnblogs.com/chuntao/p/11433324.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的微信上传素材 java_微信素材上传(JAVA)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。