eclipse如何使用retrofit

2025-03-29 19:45:18

Retrofit是Square开发的一个Android和Java的REST客户端库。这个库非常简单并且具有很多特性,相比其他的网络库,更容易让初学者快速掌握。它可以处理GET、POST、PUT、DELETE…等请求,还可以使用picasso加载图片。以下是在eclipse使用retrofit的方法。

eclipse如何使用retrofit

设置

1、权限在AndroidManifest.xml中请求络权限 :<uses-permissionandroid:name="android.permission.INTERNET"/>

eclipse如何使用retrofit

2、下载最新的jar,搜索"Retrofit jar"下载记得添加okhttp依赖和其内部依赖okio

eclipse如何使用retrofit

使用

1、创建一个Retrofit实例publicstaticfinalStringBASE_URL="http://api.myservice.com";Retrofitretrofit=newRetrofit.Builder().baseUrl(BASE_URL).build();

eclipse如何使用retrofit

2、把Gson Converter 作为一个独立的依赖添加进来。compile'com.google.code.gson:gson:2.4'compile'com.squareup.retrofit:converter-gson:2.0.0-beta2'

3、使用addConverterFactory把它添加进来:publicstaticfinalStringBASE_URL="http://api.myservice.com";Retrofitretrofit=newRetrofit.Builder().baseUrl(BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();

eclipse如何使用retrofit

定义Endpoints

1、Endpoints实现了转换HTTP API为Java接口。Retrofit有5种请求类型注解:GET、POST、PUT、DELETE和HEAD,用法如下相对URL。

eclipse如何使用retrofit

2、@GET("users/盟敢势袂list") 查询参数@GET("users/list?sort=d髫潋啜缅esc")参数在路径中@GET("group/{id}/users")Call<List<User>>groupList(@Path("id")intgroupId);也可以添加查询参数@GET("group/{id}/users")Call<List<User>>groupList(@Path("id")intgroupId,@Query("sort")Stringsort);多个参数组合为Map@GET("group/{id}/users")Call<List<User>>groupList(@Path("id")intgroupId,@QueryMapMap<String,String>options);使用@Body将json字符串解析为一个对象作为参数

3、@POST("users/new")Call<User>createUser(@BodyUseruser);使用@FormUrlEncoded发送表单,同时@F足毂忍珩ield指参数值。@FormUrlEncoded@POST("user/edit")Call<User>getUser(@Field("name")Stringname,@Field("password")Stringpassword);使用Map将过多的表单参数组合到一起@FormUrlEncoded@POST("user/edit")Call<User>getUser(@FieldMapMap<String,String>map);@Multipart文件上传,@Part指定文件路径@Multipart@POST("/user/edit")Call<User>upload(@Part("image\";filename=\"文件名.jpg")RequestBodyfile);@MapPart批量上传@Multipart@POST("/user/edit")Call<User>upload(@PartMapMap<String,RequestBody>params);[java]view plaincopyRequestBodyfileBody=RequestBody.create(MediaType.parse("image/png"),imgFile);map.put("image\";filename=\""+imgFile.getName()+"",fileBody);

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢