HttpURLConnection实现java后台上传文件和其他参数
来源:互联网 发布:windows更新失败 编辑:程序博客网 时间:2024/06/07 05:00
最近在对接某第三方视频服务商的接口,使用java在后台调用他们的接口。在对接设置封面时遇到一个问题,他们需要对个参数,且有一个参数的类型为file。苦寻半天,果。遂记录如下。
import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.net.HttpURLConnection;import java.net.URL;/** * @author Administrator * */public class WeihouUtil { public static void main(String[] args){ setActiveImage("1", "v10624388", "xinchengzhihuics", "451976930", "C:\\Users\\Administrator\\Desktop\\1_yuruixin_china.jpg"); } /** * @param auth_type * @param account * @param password * @param webinar_id * @param image * @return */ public static String setActiveImage(String auth_type,String account,String password,String webinar_id,String image ){ String resStr = null; try{ String boundary = "Boundary-b1ed-4060-99b9-fca7ff59c113"; //Could be any string String Enter = "\r\n"; File file = new File(image); FileInputStream fis = new FileInputStream(file); URL url = new URL("http://e.vhall.com/api/vhallapi/v2/webinar/activeimage"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); conn.setDoOutput(true); conn.setDoInput(true); conn.setRequestMethod("POST"); conn.setUseCaches(false); conn.setInstanceFollowRedirects(true); conn.setRequestProperty("Content-Type","multipart/form-data;boundary=" + boundary); conn.connect(); DataOutputStream dos = new DataOutputStream(conn.getOutputStream()); //part 1 String part1 = "--" + boundary + Enter + "Content-Type: application/octet-stream" + Enter + "Content-Disposition: form-data; filename=\""+file.getName()+"\"; name=\"image\"" + Enter + Enter; //part 2 String part2 = Enter + "--" + boundary + Enter + "Content-Type: text/plain" + Enter + "Content-Disposition: form-data; name=\"webinar_id\"" + Enter + Enter + webinar_id + Enter + "--" + boundary + "--"; //part 3 String part3 = Enter + "--" + boundary + Enter + "Content-Type: text/plain" + Enter + "Content-Disposition: form-data; name=\"auth_type\"" + Enter + Enter + auth_type + Enter + "--" + boundary + "--"; //part 4 String part4 = Enter + "--" + boundary + Enter + "Content-Type: text/plain" + Enter + "Content-Disposition: form-data; name=\"account\"" + Enter + Enter + account + Enter + "--" + boundary + "--"; //part 5 String part5 = Enter + "--" + boundary + Enter + "Content-Type: text/plain" + Enter + "Content-Disposition: form-data; name=\"password\"" + Enter + Enter + password + Enter + "--" + boundary + "--"; byte[] xmlBytes = new byte[fis.available()]; fis.read(xmlBytes); dos.writeBytes(part1); dos.write(xmlBytes); dos.writeBytes(part2); dos.writeBytes(part3); dos.writeBytes(part4); dos.writeBytes(part5); dos.flush(); dos.close(); fis.close(); System.out.println("status code: "+conn.getResponseCode()); InputStream in = conn.getInputStream(); int ch; StringBuilder sb2 = new StringBuilder(); while ((ch = in.read()) != -1) { sb2.append((char) ch); } resStr = sb2.toString(); System.out.println(resStr); conn.disconnect(); }catch(Exception e){ e.printStackTrace(); } return resStr; }}
阅读全文
0 0
- HttpURLConnection实现java后台上传文件和其他参数
- JAVA使用HttpUrlConnection实现自动上传文件
- JAVA使用HttpUrlConnection实现自动上传文件
- 【JAVA】通过HttpURLConnection 上传和下载文件
- android使用HttpURLConnection实现带参数文件上传
- android使用HttpURLConnection实现带参数文件上传
- android使用HttpURLConnection/HttpClient实现带参数文件上传
- HttpURLConnection Post请求上传文件和参数到servlet
- java实现文件上传和下载的后台代码
- 用httpUrlConnection实现文件上传
- HttpUrlConnection实现小文件上传
- Java使用HttpURLConnection上传文件
- Java使用HttpURLConnection上传文件
- Java使用HttpURLConnection上传文件
- Java使用HttpURLConnection上传文件
- node.js+android(使用HttpURLConnection和HttpClient)实现文件上传
- Java客户端利用httpclient来同时上传文件和其他字符串参数
- Android 通过post上传文件--HttpURLConnection实现
- C++编译器—gcc的用法
- 计算机语言的发展史
- SQLServer登录用户到SCHEMA用户的创建
- 友盟
- GPG error: http://cn.archive.ubuntu.com trusty InRelease: Clearsigned file isn’t valid, got ‘NODATA’
- HttpURLConnection实现java后台上传文件和其他参数
- 最大连续子数组和
- mongodb删除集合后磁盘空间不释放
- 如何粘贴代码
- 在Android开发中巧妙使用观察者模式避免内存泄露
- 亚马逊海外岗位技术面试经验分享
- 简单排序——冒泡排序及其优化
- 解决遮罩层不能覆盖整个页面问题
- mybatis获取到的数据为NULL