[android] 上传文件到服务器

异步http框架post提交数据到服务器

 

前面我们使用普通的方式post提交数据,比较麻烦,现在使用异步框架来实现以下,感觉非常舒服。

 

获取AsyncHttpClient对象

调用AsyncHttpClient对象的post(uri,params,responseHandler)方法,post提交数据,参数:

uri String类型的路径

paramsRequestParams对象,类似map集合,put进去键值对

responseHandlerResponseHandler对象,接口类型,

直接new实现类AsyncHttpResponseHandler,重写onSuccess()方法和onError()方法

 

上传文件到服务器

 

首先需要搭建文件上传的服务器,

打开j2ee for eclipse来新建一个web工程,

自己弄比较麻烦,需要使用一些文件上传的框架,common-fileuploadcommon-io。新建一个Servlet来处理上传,把那两个jar包拷贝到webcontent/WEB-INF/lib目录里面

 

使用jsp文件写个form表单,测试文件上传,查看Http协议,可以看到,文件上传实际上也是个post请求,有以下头信息不同

Content-Type:multipart/form-data;boundary=-------------------------126555457,这个boundary是随机生成的分割线

Content-Disposition:form-data;name=”xxx”;filename=”xxx”;Content-Type:xxxx

输入流

如果分割线后面有--代表数据结束,原来要上传需要面向http协议,写起来非常麻烦,需要拼接各种数据,现在使用框架,非常简单

 

页面布局,一个Editext填写文件路径,一个Button按钮点击上传,线性布局竖直排列

 

获取AsyncHttpClient对象

调用AsyncHttpClient对象的post(uri,params,responseHandler)方法,post提交数据,参数:

uri String类型的路径

paramsRequestParams对象,类似map集合,put进去键值对,调用RequestParams对象的put()方法,键值对,值是File对象,newfile对象,包装文件路径

responseHandlerResponseHandler对象,接口类型,

直接new实现类AsyncHttpResponseHandler,重写onSuccess()方法和onError()方法

你可能感兴趣的:([android] 上传文件到服务器)