1、/* 上传* * param path* param file* return* throws Exception* author CaoFeng * version 1.0.0* since JDK 1.6*/private static String connectHttpsByPost(String path,File file) throws ExceptionString result =null; URL url = new URL(path);/ 创建连接 HttpURLConnection con = (HttpURLConnection) url .openConnectio
2、n(); con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); / post方式不能使用缓存 / 设置请求头信息 con.setRequestProperty(“Connection“, “Keep-Alive“); con.setRequestProperty(“Charset“, “UTF-8“); / 设置边界 String BOUNDARY = “-“ + System.currentTimeMillis(); con.setRequestProperty(“Content-Type“, “multi
3、part/form-data; boundary=“ + BOUNDARY); / 请求正文信息 / 第一部分: StringBuilder sb = new StringBuilder(); sb.append(“-“); / 必须多两道线 sb.append(BOUNDARY); sb.append(“rn“); sb.append(“Content-Disposition: form-data;name=“media“;filelength=“+file.length()+“;filename=“ + file.getName() + “rn“); sb.append(“Content-
4、Type:application/octet-streamrnrn“); byte head = sb.toString().getBytes(“utf-8“); / 获得输出流 OutputStream out = new DataOutputStream(con.getOutputStream(); / 输出表头 out.write(head); / 文件正文部分 / 把文件以流文件的方式 推入到url中 DataInputStream in = new DataInputStream(new FileInputStream(file); int bytes = 0; byte buffe
5、rOut = new byte1024; 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.flush(); out.close(); StringBuffer buffer = new StringBuffer(); BufferedReader reader = null; try
6、 / 定义BufferedReader输入流来读取URL的响应 reader = new BufferedReader(new InputStreamReader(con.getInputStream(); String line = null; while (line = reader.readLine() != null) buffer.append(line); if (result = null) result = buffer.toString(); catch (IOException e) System.out.println(“发送POST请求出现异常!“ + e); e.pr
7、intStackTrace(); throw new IOException(“数据读取异常“); finally if (reader != null) reader.close(); return result; /* 上传其他永久素材 (图片素材的上限为5000,其他类型为1000)* * param appid* param secret* param file* param type* param access_token* return* throws Exception* author CaoFeng * version 1.0.0* since JDK 1.6*/public
8、static JSONObject addMaterialEver(File file,String type,String access_token) throws Exception try System.out.println(“开始上传“+type +“永久素材-“ );/上传素材String path=“https:/ result=WeixinMaterial.connectHttpsByPost(path,file);result=result.replaceAll(“, “);System.out.println(“result:“+result);JSONObject res
9、ultJSON=JSONObject.fromObject(result);if(resultJSON!=null)if(resultJSON.get(“media_id“)!=null)System.out.println(“上传“+type +“永久素材成功“);return resultJSON;elseSystem.out.println(“上传“+type +“永久素材失败“);return null; catch (Exception e) System.out.println(“程序异常:“+ e);throw e;finallySystem.out.println(“结束上传“
10、+type +“永久素材-“ );/* 上传图片到微信服务器 (本接口所上传的图片不占用公众号的素材库中图片数量的5000个的限制。图片仅支持jpg/png格式,大小必须在1MB以下)* * param appid* param secret* param file* param access_token* return* throws Exception* author CaoFeng * version 1.0.0* since JDK 1.6*/public static JSONObject addMaterialEver(File file,String access_token)
11、throws Exception try System.out.println(“开始上传图文消息内的图片-“);/上传图片素材String path=“https:/ result=WeixinMaterial.connectHttpsByPost(path, file);result=result.replaceAll(“, “);System.out.println(“result:“+result);JSONObject resultJSON=JSONObject.fromObject(result);if(resultJSON!=null)if(resultJSON.get(“url
12、“)!=null)System.out.println(“上传图文消息内的图片成功“);return resultJSON;elseSystem.out.println(“上传图文消息内的图片失败“);return null; catch (Exception e) System.out.println(“程序异常:“+ e);throw e;finallySystem.out.println(“结束上传图文消息内的图片-“);/* 上传临时素材* * param appid* param secret* param file* param type* param access_token*
13、return* throws Exception* author CaoFeng * version 1.0.0* since JDK 1.6*/public static JSONObject mediaUpload(File file,String type,String access_token) throws Exception try System.out.println(“开始上传图文消息内的图片-“);/上传图片素材String path=“https:/ result=WeixinMaterial.connectHttpsByPost(path,file);result=res
14、ult.replaceAll(“, “);JSONObject resultJSON=JSONObject.fromObject(result);if(resultJSON!=null)if(resultJSON.get(“media_id“)!=null)System.out.println(“上传临时素材成功“);return resultJSON;elseSystem.out.println(“上传临时素材失败“);return null; catch (Exception e) System.out.println(“程序异常:“+ e);throw e;finallySystem.out.println(“结束上传临时素材-“);