UDN-企业互联网技术人气社区

板块导航

浏览  : 2846
回复  : 3

[其它] 微信开发实现多媒体上传时报{"errcode":40014,"errmsg":&

[复制链接]
Zhaoruifeng158的头像 楼主
发表于 2015-4-30 19:23:08 | 显示全部楼层 |阅读模式
public static JSONObject uploadMedia3(String requestUrl,String mediaFileUrl) throws IOException{
               
                // 定义数据分割符  
        String boundary = "----------sunlight";  
                String result=null;
                File file=new File("f:\\13343648273775267406.jpg");
                if(!file.exists()||!file.isFile()){
                        throw new IOException("文件不存在");
                }
                URL url=new URL(requestUrl);
                HttpURLConnection conn=(HttpURLConnection) url.openConnection();
                conn.setRequestMethod("POST");
                conn.setDoOutput(true);
                conn.setDoInput(true);
                conn.setUseCaches(false);
                //设置请求头信息
                conn.setRequestProperty("Connection", "keep-Alive");
                conn.setRequestProperty("Charset", "utf-8");
                //设置边界
                boundary=boundary+System.currentTimeMillis();
                conn.setRequestProperty("Content-Type","multipart/form-data;boundary="+boundary);
                //请求正文信息
                //第一部分:
                StringBuffer sb=new StringBuffer();
                sb.append("--");
                sb.append(boundary);
                sb.append("\r\n");
                sb.append("Content-Disposition:form-data;name=\"file\";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=new DataOutputStream(conn.getOutputStream());
                //输出表头
                out.write(head);
                //文件正文部分
                // 把文件已流文件的方式 推入到url中  
                DataInputStream in=new DataInputStream(new FileInputStream(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();
                BufferedReader reader=null;
                try {
                         // 定义BufferedReader输入流来读取URL的响应
                        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 (Exception e) {
                        System.out.println("发送POST请求出现异常!" + e);
                        e.printStackTrace();
                        throw new IOException("数据读取异常");
                }finally{
                        if(reader!=null){
                                reader.close();
                        }
                }
                System.out.println(result);
                JSONObject jsonObject=new JSONObject().fromObject(result);
                return jsonObject;
        }

相关帖子

发表于 2015-5-1 16:32:09 | 显示全部楼层
invalid access_token,是你的access_token无效,你要重新刷新下access_token.
我也在做这个
        
使用道具 举报

回复

发表于 2015-5-1 20:22:25 | 显示全部楼层


调用接口获取验证码。
使用道具 举报

回复

发表于 2017-8-31 10:21:06 | 显示全部楼层
偏技术型的帖子,学习到了
使用道具 举报

回复

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

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部