文件上传到微信服务器https请求

来源:互联网 发布:数据录入员述职报告 编辑:程序博客网 时间:2024/06/05 16:01
 /*** * httpUploadMedia:文件上传到微信服务器*  * @author HanKeQi  * @param  @param pathUrl  URL* @param  @param fileType 文件类型* @param  @param filePath 文件路径* @param  @return* @param  @throws Exception          设定文件* @throws JSONObject   DOM对象  * @since  JDK 1.7*/public static JSONObject httpUploadMedia(String pathUrl, String fileType, String filePath) throws Exception {String result = null;File file = new File(filePath);if (!file.exists() || !file.isFile()) {log.info("/*********************文件路径不对***************************/");return  null;}/*** 第一部分*/URL urlObj = new URL(pathUrl);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 = new StringBuilder();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(con.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(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();} finally {if (reader != null) {reader.close();reader=null;}}JSONObject jsonObj = JSONObject.fromObject(result);return jsonObj;}


0 0
原创粉丝点击