Android学习之使用HttpURLConnection上传单多个文件
2016-04-14 17:02
946 查看
private void upload(String[] uploadFiles, String actionUrl) { String end = "/r/n"; String twoHyphens = "--"; String boundary = "*****"; try { URL url = new URL(actionUrl); HttpURLConnection con = (HttpURLConnection) url.openConnection(); // 发送POST请求必须设置如下两行 con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); con.setRequestMethod("POST"); con.setRequestProperty("Connection", "Keep-Alive"); con.setRequestProperty("Charset", "UTF-8"); con.setRequestProperty("Content-Type", "multipart/form-data;boundary=" + boundary); DataOutputStream ds = new DataOutputStream(con.getOutputStream()); for (int i = 0; i < uploadFiles.length; i++) { String uploadFile = uploadFiles[i]; String filename = uploadFile.substring(uploadFile.lastIndexOf("//") + 1); ds.writeBytes(twoHyphens + boundary + end); ds.writeBytes("Content-Disposition: form-data; " + "name=/"file" + i + "/";filename=/"" + filename + "/"" + end); ds.writeBytes(end); FileInputStream fStream = new FileInputStream(uploadFile); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int length = -1; while ((length = fStream.read(buffer)) != -1) { ds.write(buffer, 0, length); } ds.writeBytes(end); /* close streams */ fStream.close(); } ds.writeBytes(twoHyphens + boundary + twoHyphens + end); ds.flush(); // 定义BufferedReader输入流来读取URL的响应 InputStream is = con.getInputStream(); int ch; StringBuffer b = new StringBuffer(); while ((ch = is.read()) != -1) { b.append((char) ch); } String s = b.toString(); if (s.contains("successfully")) { // for (int i = 1; i < 5; i++) { int beginIndex = s.indexOf("url =") + 5; int endIndex = s.indexOf("/n", beginIndex); String urlStr = s.substring(beginIndex, endIndex).trim(); System.out.println(urlStr); // } } ds.close(); } catch (Exception e) { } }
相关文章推荐
- java-用HttpURLConnection发送Http请求.
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件