public static String postFile(String url, String filePath, String title,String introduction) { File file = new File(filePath); if(!file.exists()) return null; String result = null; try { URL url1 = new URL(url); HttpURLConnection conn = (HttpURLConnection) url1.openConnection(); conn.setConnectTimeout(5000); conn.setReadTimeout(30000); conn.setDoOutput(true); conn.setDoInput(true); conn.setUseCaches(false); conn.setRequestMethod("POST"); conn.setRequestProperty("Connection", "Keep-Alive"); conn.setRequestProperty("Cache-Control", "no-cache"); String boundary = "-----------------------------"+System.currentTimeMillis(); conn.setRequestProperty("Content-Type", "multipart/form-data; boundary="+boundary); OutputStream output = conn.getOutputStream(); output.write(("--" + boundary + "\r\n").getBytes()); output.write(String.format("Content-Disposition: form-data; name=\"media\"; filename=\"%s\"\r\n", file.getName()).getBytes()); output.write("Content-Type: video/mp4 \r\n\r\n".getBytes()); byte[] data = new byte[1024]; int len =0; FileInputStream input = new FileInputStream(file); while((len=input.read(data))>-1){ output.write(data, 0, len); } output.write(("--" + boundary + "\r\n").getBytes()); output.write("Content-Disposition: form-data; name=\"description\";\r\n\r\n".getBytes()); output.write(String.format("{\"title\":\"%s\", \"introduction\":\"%s\"}",title,introduction).getBytes()); output.write(("\r\n--" + boundary + "--\r\n\r\n").getBytes()); output.flush(); output.close(); input.close(); InputStream resp = conn.getInputStream(); StringBuffer sb = new StringBuffer(); while((len= resp.read(data))>-1) sb.append(new String(data,0,len,"utf-8")); resp.close(); result = sb.toString(); System.out.println(result); } catch (ClientProtocolException e) { logger.error("postFile,不支持http協議",e); } catch (IOException e) { logger.error("postFile數據傳輸失敗",e); } logger.info("{}: result={}",url,result); return result; }
添加回答
舉報
0/150
提交
取消