作家
登录

Android用Retrofit 2实现多文件上传实战

作者: 来源: 2017-04-21 09:24:36 阅读 我要评论

'com.squareup.retrofit2:retrofit:2.1.0' 
  • compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
  • compile 'com.github.bumptech.glide:glide:3.7.0' 
  • compile 'com.lzy.widget:imagepicker:0.4.1'  
  • 3.2 法度榜样实现

    Retrofit2 是一个支撑RESTful API的请求库,实际上只是对API请求方法的封装,真正的收集请求由OkHttp发出。

    Retrofit2一般会定义一个ServiceGenerator类,用于动态生成Retrofit对象。

    1. public class ServiceGenerator { 
    2. public static final String API_BASE_URL = "http://192.168.1.102:5000/"
    3. private static OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); 
    4.   
    5. private static Retrofit.Builder builder = 
    6. new Retrofit.Builder() 
    7. .baseUrl(API_BASE_URL) 
    8. .addConverterFactory(GsonConverterFactory.create()); 
    9.   
    10. public static <S> S createService(Class<S> serviceClass) { 
    11. Retrofit retrofit = builder.client(httpClient.build()).build(); 
    12. return retrofit.create(serviceClass); 
    13.  

    具体的API操作由FlaskClient接口操作,

    1. public interface FlaskClient { 
    2.     //上传图片 
    3.     @Multipart 
    4.     @POST("/upload"
    5.     Call<UploadResult> uploadMultipleFiles(@PartMap Map<String,RequestBody> files); 
    6.  

    上传文件须要应用@Multipart关键字注解,@POST注解HTTP请求方法为POST,/upload为请求办事器的相对地址,uploadMultipleFiles是自定义的办法名,参数为Map<String,RequestBody> files即多个文件构成的Map对象,@PartMap注解这是多文件上传,如不雅单文件可以应用@Part MultipartBody.Part file,办法的返回类型默认为Response,因为我们已经开辟了Server端,所以知道Server端的返回数据格局为Json,是以我们针对返回数据格局新建一个UploadResut类。

    1. public class UploadResult { 
    2.      public int code; // 1 
    3.      public List<String> image_urls; 
    4.  

    3. 客户端开辟

    点击Upload按钮后履行上传操作,核心的办法:

    1. public void uploadFiles() { 
    2.     if(imagesList.size() == 0) { 
    3.         Toast.makeText(MainActivity.this, "不克不及不选择图片", Toast.LENGTH_SHORT).show(); 
    4.         return
    5.     } 

        推荐阅读

        让你的设计更加高效便捷的5款原型设计工具

      它是一款快速原型的设计软件,由美国加利福利亚的Balsamiq工作室推出,它真正抓住了原型设计的核心和均衡点-既能设计草图,又能较好地进入到日常平凡团队工作的流程和对象。它具有极其丰富>>>详细阅读


      本文标题:Android用Retrofit 2实现多文件上传实战

      地址:http://www.17bianji.com/lsqh/34876.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)