+发表新主题
查看: 1613|回复: 0

[代码片段] java版,微信公众平台新手入门第四节

[复制链接]

[代码片段] java版,微信公众平台新手入门第四节

[复制链接]
风的传说自由 发表于 2015-10-15 13:42:38 浏览:  1613 回复:  0 [显示全部楼层] 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x


java 微信公众平台开发


  1.   public void addUpLoad(HttpServletRequest request,HttpServletResponse response) {
  2.       
  3.       UrlRequestUtil uu = new UrlRequestUtil();
  4.       
  5.       String url = "http://api.weixin.qq.com/cgi-bin/material/add_material?access_token=";
  6.       JSONObject jo = new JSONObject();
  7.       
  8.       try {
  9.         net.sf.json.JSON json = uu.addMaterial("image", control.getAccessToken().getToken(), new File("D:\\test2.jpg"),url);
  10.         jo = JSON.parseObject(json.toString());
  11.         
  12.         System.out.println(jo);
  13.         System.out.println("media_id:"+jo.getString("media_id"));
  14.         System.out.println("errcode:"+jo.getString("errcode"));
  15.         System.out.println("url: "+jo.getString("url"));
  16.         
  17.       } catch (Exception e) {
  18.         System.out.println("上传素材失败");
  19.       }
  20.       
  21.       super.writeJson(jo.toString(),response);
  22.    }
  23.       public net.sf.json.JSONObject addMaterial(String fileType,Stringaccess_token,File file,String url) throws Exception{
  24.         
  25.           String result = null;
  26.          net.sf.json.JSONObject jsonObj = null;
  27.          
  28.           if (!file.exists() ||!file.isFile()) {  
  29.             throw new IOException("文件不存在");  
  30.           }
  31.            URL urlObj = new URL(url+access_token+"&type="+fileType);
  32.         
  33.             // 连接
  34.            HttpURLConnection con = (HttpURLConnection)urlObj.openConnection();
  35.            con.setRequestMethod("POST"); // 以Post方式提交表单,默认get方式  
  36.             con.setDoInput(true);  
  37.             con.setDoOutput(true);  
  38.             con.setUseCaches(false); // post方式不能使用缓存  
  39.            con.setRequestProperty("Connection", "Keep-Alive");  
  40.            con.setRequestProperty("Charset", "UTF-8");  
  41.         
  42.             // 设置边界  
  43.             String BOUNDARY = "----" + System.currentTimeMillis();  
  44.            con.setRequestProperty("Content-Type", "multipart/form-data;boundary="+ BOUNDARY);
  45.          
  46.             StringBuilder sb = newStringBuilder();  
  47.             sb.append("--"); // 必须多两道线  
  48.            sb.append(BOUNDARY);  
  49.             sb.append("\r\n");  
  50.             sb.append("Content-Disposition:form-data;name="media";");
  51.            
  52.             sb.append("filelength=""+file.length()+"";" +"filename=""  + file.getName()+ ""\r\n");
  53.             sb.append("Content-Type:application/octet-stream\r\n\r\n");  
  54.             byte[] head =sb.toString().getBytes("utf-8");  
  55.          
  56.             // 获得输出流  
  57.             OutputStream out = newDataOutputStream(con.getOutputStream());
  58.             // 输出表头  
  59.             out.write(head);  
  60.         
  61.         
  62.             // 文件正文部分  
  63.             // 把文件已流文件的方式 推入到url中  
  64.             DataInputStream in = new DataInputStream(newFileInputStream(file));  
  65.             int bytes = 0;  
  66.             byte[] bufferOut = new byte[1024];  
  67.             while ((bytes =in.read(bufferOut)) != -1) {  
  68.               out.write(bufferOut, 0, bytes);  
  69.             }  
  70.             in.close();
  71.             // 结尾部分  
  72.             byte[] foot = ("\r\n--" + BOUNDARY + "--\r\n").getBytes("utf-8");// 定义最后数据分隔线  
  73.         
  74.            out.write(foot);  
  75.             out.flush();
  76.             out.close();
  77.          
  78.             StringBuffer buffer= new StringBuffer();  
  79.             BufferedReaderreader = null;  
  80.           try {  
  81.             // 定义BufferedReader输入流来读取URL的响应  
  82.             reader = new BufferedReader(newInputStreamReader(con.getInputStream()));
  83.             String line = null;  
  84.             while ((line =reader.readLine()) != null) {  
  85.               buffer.append(line);  
  86.             }  
  87.             if(result==null){  
  88.               result = buffer.toString();  
  89.             }  
  90.           } catch (IOException e){  
  91.             System.out.println("发送POST请求出现异常!" + e);  
  92.            e.printStackTrace();  
  93.             throw new IOException("数据读取异常");  
  94.           } finally {  
  95.             if(reader!=null){reader.close();}
  96.             jsonObj = net.sf.json.JSONObject.fromObject(result);  
  97.           }
  98.          
  99.          
  100.           return jsonObj;
  101.         
  102.       }
复制代码


回复

使用道具 举报


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版| 赣南网

© 2013-2016 Comsenz Inc. Powered by Discuz! X3.4

用微信扫一扫

赣南网