Android中利用apache的httpclient实现文件的上传
来源:互联网 发布:全包钢化膜 知乎 编辑:程序博客网 时间:2024/05/16 13:57
之前利用java代码实现了文件的上传,见java模拟form表单提交文件到服务器,这里在Android中实现了上传文件到服务器,利用的是apache的httpclient包,下载地址:http://hc.apache.org/downloads.cgi。
具体实现代码如下:
其实在实际开发中的需求一般会是利用一个上传队列来维护上传任务,这里可以利用java的线程池是实现:
源码见:http://bigcateasymorse.googlecode.com/svn/trunk/androiduploadfiletoserver/
具体实现代码如下:
public static int sendFileToServer(String url, File file) {这里重点说一下Part[]这个参数:
int status = 0;
try {
PostMethod filePost = new PostMethod(url);
Part[] parts = { new FilePart("datefile", file, null, "UTF-8"),
new StringPart("uuid", "12123123213", "UTF-8"),
new StringPart("username", "test", "UTF-8"),
new StringPart("types", "test", "UTF-8") };
MultipartRequestEntity multipartRequestEntity = new MultipartRequestEntity(parts, filePost.getParams());
filePost.setRequestEntity(multipartRequestEntity);
HttpClient clients = new HttpClient();
status = clients.executeMethod(filePost);
BufferedReader rd = new BufferedReader(new InputStreamReader(filePost.getResponseBodyAsStream(), "UTF-8"));
StringBuffer stringBuffer = new StringBuffer();
String line;
while ((line = rd.readLine()) != null) {
stringBuffer.append(line);
}
rd.close();
// 这里需要解析json格式的字符串
Log.i("cat", stringBuffer.toString());
} catch (Exception e) {
return 500;
}
return status;
}
Part[] parts = { new FilePart("datefile", file, null, "UTF-8"),数组中可以存放FilePart和StringPart不同类型的数据,FilePart就是需要上传的File对应的参数,StringPart是发送post请求的时候,其他需要传递的参数。
new StringPart("uuid", "12123123213", "UTF-8"),
new StringPart("username", "test", "UTF-8"),
new StringPart("types", "test", "UTF-8") };
其实在实际开发中的需求一般会是利用一个上传队列来维护上传任务,这里可以利用java的线程池是实现:
ExecutorService executorService = Executors.newFixedThreadPool(2);这样就实现了队列线程上传文件,注意这不是多线程上传。
executorService.submit(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
sendFileToServer("", new File(Environment.getExternalStorageDirectory().toString() + File.separator + "aa.zip"));
}
});
executorService.submit(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
sendFileToServer("", new File(Environment.getExternalStorageDirectory().toString() + File.separator + "aa.zip"));
}
});
executorService.shutdown();
源码见:http://bigcateasymorse.googlecode.com/svn/trunk/androiduploadfiletoserver/
- Android中利用apache的httpclient实现文件的上传
- android中利用httpclient上传文件
- HttpClient 实现文件的上传
- 利用Apache的FileUpload类库实现文件上传
- 使用HttpClient实现文件的上传
- 使用Apache commons-httpclient获取上传文件的进度
- Android开发之httpclient文件上传实现
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- 利用apache的Commons-fileupload和Ajax实现文件上传进度条
- 使用java的HttpURLconnnection模拟form上传以及apache httpClient 直接上传文件
- 使用HttpClient实现文件和其他表单数据的上传
- SSH+CKeditor下使用HttpClient实现文件的上传
- HttpClient 实现文件上传
- 关于httpclient中MultipartPostMethod类上传文件的一点感受
- android httpclient 上传文件
- Android HttpClient上传文件
- android使用Apache HttpClient实现get/post的请求
- Linux C实践(1):不可忽略或捕捉的信号—SIGSTOP和SIGKILL
- 3D重建之相机校准:相机的内参与外参
- javaScript中的闭包
- linux 3.11.6 内核编译过程
- gdb调试运行中的进程
- Android中利用apache的httpclient实现文件的上传
- 云计算基础
- android网络传输中的大小端转换
- sql join图解
- Android中处理崩溃异常
- android eoe客户端
- C语言32个关键字
- c语言printf()输出格式大全
- poj1011