利用loopj的android-async-http进行文件上传

  

学习到了安卓上传文件了! ! !

,,,,在Android端,用到的是android-async-http框架,

,,,, github地址为:https://github.com/koush/AndroidAsync/

在中搭建该框架超级简单,只需要在build.gradle中加入下面2句(下图中×××标记的2处),然后建立一下项目,就会自动把该框架需要的jar包放入到自由里。

,,,,由于sdk自从5.0(或6.0者)之后抛弃了httpclient,所以用这个框架,需要手动添加一些配置,来使Android支持httpclient。

,,,,同样在构建。gradle中加入标红的那一行配置即可


 apply :, android  {
  ,,,compileSdkVersion  buildToolsVersion  defaultConfig  {
  ,,,,,,,minSdkVersion  targetSdkVersion }
  ,,,buildTypes  {
  ,,,,,,,release  {
  ,,,,,,,,,,,proguardFiles  getDefaultProguardFile (),,}
  ,,,}
  ,,}
  
  dependencies  {
  ,,,compile  fileTree (:,,,:, [])
  ,,,androidTestCompile (, {
  ,,,,,,,exclude :,,,,,})
  ,,compile  compile  testCompile } 


1, MainActivity

package  com.yuanlp.fileupload;      import  android.os.Bundle;   import  android.support.v7.app.AppCompatActivity;   import  android.text.TextUtils;   import  android.view.View;   import  android.widget.EditText;   import  android.widget.Toast;      import  com.loopj.android.http.AsyncHttpClient;   import  com.loopj.android.http.AsyncHttpResponseHandler;   import  com.loopj.android.http.RequestParams;      import  java.io.BufferedWriter;   import  java.io.File;   import  java.io.FileWriter;   import  java.io.IOException;      import  cz.msebera.android.httpclient.Header;      public  class  MainActivity  extends  AppCompatActivity  {      ,,,private  EditText  mPost;      ,,@Override   ,,,protected  void  onCreate (Bundle  savedInstanceState), {   ,,,,,,,super.onCreate (savedInstanceState);   ,,,,,,,setContentView (R.layout.activity_main);   ,,,,,,,mPost =, (EditText), findViewById (R.id.et_post);      ,,,,,,,/* *   ,,,,,,,,*,在缓存文件夹下创建一个文件,用来上传   ,,,,,,,*/,,,,,,,File 文件=new 文件(getCacheDir (),“upload.txt”);   ,,,,,,,try  {   ,,,,,,,,,,,BufferedWriter 作家=new  BufferedWriter (new  FileWriter(文件);   ,,,,,,,,,,,writer.write(“上传、测试”);   ,,,,,,,,,,,writer.flush ();   ,,,,,,,},catch  (IOException  e), {   ,,,,,,,,,,,e.printStackTrace ();   ,,,,,,,}   ,,,}      ,,,/* *   ,,,,*,按钮的onclick方法   ,,,,*,@param 视图   ,,,*/,,,public  void 上传(View 视图){   ,,,,,,,,,,,String 路径=mPost.getText () .toString () .trim ();   ,,,,,,,if  (TextUtils.isEmpty(路径)){   ,,,,,,,,,,,Toast.makeText(这个,”路径不能为空”,,Toast.LENGTH_SHORT),告诉();      ,,,,,,,}   ,,,,,,,File 文件=new 文件(路径);   ,,,,,,,if  (file.exists(),和file.length()在0){,//判断文件是否存在,且是否有内容      ,,,,,,,,,,,/* *   ,,,,,,,,,,,,*,下面是用框架做的上传文件   ,,,,,,,,,,,*/,,,,,,,,,,,AsyncHttpClient  AsyncHttpClient =, new  AsyncHttpClient ();   ,,,,,,,,,,,RequestParams  params =, new  RequestParams ();   ,,,,,,,,,,,try  {   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

利用loopj的android-async-http进行文件上传