
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
java版 微信公众平台开发
- public void addUpLoad(HttpServletRequest request,HttpServletResponse response) {
-
- UrlRequestUtil uu = new UrlRequestUtil();
-
- String url = "http://api.weixin.qq.com/cgi-bin/material/add_material?access_token=";
- JSONObject jo = new JSONObject();
-
- try {
- net.sf.json.JSON json = uu.addMaterial("image", control.getAccessToken().getToken(), new File("D:\\test2.jpg"),url);
- jo = JSON.parseObject(json.toString());
-
- System.out.println(jo);
- System.out.println("media_id:"+jo.getString("media_id"));
- System.out.println("errcode:"+jo.getString("errcode"));
- System.out.println("url: "+jo.getString("url"));
-
- } catch (Exception e) {
- System.out.println("上传素材失败");
- }
-
- super.writeJson(jo.toString(),response);
- }
- public net.sf.json.JSONObject addMaterial(String fileType,Stringaccess_token,File file,String url) throws Exception{
-
- String result = null;
- net.sf.json.JSONObject jsonObj = null;
-
- if (!file.exists() ||!file.isFile()) {
- throw new IOException("文件不存在");
- }
- URL urlObj = new URL(url+access_token+"&type="+fileType);
-
- // 连接
- HttpURLConnection con = (HttpURLConnection)urlObj.openConnection();
- con.setRequestMethod("POST"); // 以Post方式提交表单,默认get方式
- 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", "multipart/form-data;boundary="+ BOUNDARY);
-
- StringBuilder sb = newStringBuilder();
- sb.append("--"); // 必须多两道线
- sb.append(BOUNDARY);
- sb.append("\r\n");
- sb.append("Content-Disposition:form-data;name="media";");
-
- sb.append("filelength=""+file.length()+"";" +"filename="" + file.getName()+ ""\r\n");
- sb.append("Content-Type:application/octet-stream\r\n\r\n");
- byte[] head =sb.toString().getBytes("utf-8");
-
- // 获得输出流
- OutputStream out = newDataOutputStream(con.getOutputStream());
- // 输出表头
- out.write(head);
-
-
- // 文件正文部分
- // 把文件已流文件的方式 推入到url中
- DataInputStream in = new DataInputStream(newFileInputStream(file));
- int bytes = 0;
- byte[] bufferOut = new byte[1024];
- while ((bytes =in.read(bufferOut)) != -1) {
- out.write(bufferOut, 0, bytes);
- }
- in.close();
- // 结尾部分
- byte[] foot = ("\r\n--" + BOUNDARY + "--\r\n").getBytes("utf-8");// 定义最后数据分隔线
-
- out.write(foot);
- out.flush();
- out.close();
-
- StringBuffer buffer= new StringBuffer();
- BufferedReaderreader = null;
- try {
- // 定义BufferedReader输入流来读取URL的响应
- reader = new BufferedReader(newInputStreamReader(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.printStackTrace();
- throw new IOException("数据读取异常");
- } finally {
- if(reader!=null){reader.close();}
- jsonObj = net.sf.json.JSONObject.fromObject(result);
- }
-
-
- return jsonObj;
-
- }
复制代码
|
|
|
|
|
|