zoukankan      html  css  js  c++  java
  • Java-微信开发上传永久素材(支持所有文件类型)

    /**
    	 * 上传永久素材
    	 * @param	file
    	 * @param	type
    	 * @param	title type为video时需要,其他类型设null
    	 * @param	introduction type为video时需要,其他类型设null
    	 * @return	{"media_id":MEDIA_ID,"url":URL}
    	 */
    	public static String uploadPermanentMaterial(File file, String type, String title, String introduction) {
    		
    		String access_token = "10__IK_6jLYuvdvIwdftOObUbTt8HcKZER8UBjvxD6CVpbJRBYGtGQ-HmqfnSrg4YBxQ4wBS4DPaksWeQzte1jmh1g1zLULAOA4leL5iekLX5tdQYlqRQJtSKOh6FeratK4WBlNT0cXdDXPdplKFQHfAIAOZQ";
    		String url = "https://api.weixin.qq.com/cgi-bin/material/add_material?access_token="
    				+ access_token + "&type=" + type;
     
    		String result = null;
     
    		try {
    			URL uploadURL = new URL(url);
     
    			HttpURLConnection conn = (HttpURLConnection) uploadURL.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("Cache-Control", "no-cache");
    			String boundary = "-----------------------------" + System.currentTimeMillis();
    			conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
     
    			OutputStream output = conn.getOutputStream();
    			output.write(("--" + boundary + "
    ").getBytes());
    			output.write(String.format("Content-Disposition: form-data; name="media"; filename="%s"
    ", file.getName()).getBytes());
    			output.write("Content-Type: video/mp4 
    
    ".getBytes());
     
    			byte[] data = new byte[1024];
    			int len = 0;
    			FileInputStream input = new FileInputStream(file);
    			while ((len = input.read(data)) > -1) {
    				output.write(data, 0, len);
    			}
     
    			/*对类型为video的素材进行特殊处理*/
    			if ("video".equals(type)) {
    				output.write(("--" + boundary + "
    ").getBytes());
    				output.write("Content-Disposition: form-data; name="description";
    
    ".getBytes());
    				output.write(String.format("{"title":"%s", "introduction":"%s"}", title, introduction).getBytes());
    			}
     
    			output.write(("
    --" + boundary + "--
    
    ").getBytes());
    			output.flush();
    			output.close();
    			input.close();
    			
    			InputStream resp = conn.getInputStream();
     
    			StringBuffer sb = new StringBuffer();
     
    			while ((len = resp.read(data)) > -1)
    				sb.append(new String(data, 0, len, "utf-8"));
    			resp.close();
    			result = sb.toString();
    		} catch (IOException e) {
    			//....
    		}
    		
    		return result;
    	}
    苟利国家生死以, 岂因祸福避趋之
  • 相关阅读:
    微信小程序UI自动化: minium文档部署02
    微信小程序UI自动化: 选择工具/框架01
    gitalb学习:02gitlab runner安装
    gitlab学习: 01安装gitlab
    01.Python中一切皆对象
    Prometheus+Noe Expoter+Grafana:资源监控初体验(基于cenots7,没使用docker)
    01. 判断三角形的函数
    Locust性能测试:上手初体验
    史上最全的邮箱测试方法!
    使用 Python 处理非对称加密,竟然如此简单
  • 原文地址:https://www.cnblogs.com/chintsai/p/11829199.html
Copyright © 2011-2022 走看看