Android 网络请求框架retrofit

您所在的位置:网站首页 retrofit框架的优点 Android 网络请求框架retrofit

Android 网络请求框架retrofit

#Android 网络请求框架retrofit| 来源: 网络整理| 查看: 265

Retrofit是一款使用简单且功能强大的Android网络请求框架。它通过注解方式将Http请求与Java方法进行映射,从而简化网络请求的实现流程。

Retrofit的优点:

支持同步和异步请求; 支持GET、POST、PUT、DELETE等HTTP方法; 支持参数拼接、header设定、文件上传、下载等多种请求方式; 可以方便地解析服务器返回的JSON、XML等格式的数据。 Retrofit的使用:

引入依赖:在build.gradle文件中添加以下依赖:

implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

定义API接口:定义一个包含请求方法的接口,使用注解来描述方法和参数,示例代码如下:

public interface ApiService { // 请求方式 + 请求地址 @GET("api/login") // 方法参数 Call login(@Query("username") String username, @Query("password") String password); }

创建Retrofit实例:创建一个Retrofit的实例,并指定base URL,示例代码如下:

Retrofit retrofit = new Retrofit.Builder() .baseUrl("") .addConverterFactory(GsonConverterFactory.create()) .build();

创建API实例:使用Retrofit创建一个API实例,示例代码如下:

ApiService apiService = retrofit.create(ApiService.class);

发送请求:调用API接口中的方法发送请求,示例代码如下:

Call call = apiService.login("username", "password"); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { // 请求成功回调 User user = response.body(); } @Override public void onFailure(Call call, Throwable t) { // 请求失败回调 } }); Retrofit注解 1.请求方法注解 请求方法注解 说明 @GET get请求 @POST post请求 @PUT put请求 @DELETE delete请求 @PATCH patch请求,该请求是对put请求的补充,用于更新局部资源 @HEAD head请求 @OPTIONS options请求 @HTTP 通过注解,可以替换以上所有的注解,它拥有三个属性:method、path、hasBody 2.请求头注解 请求头注解 说明 @Headers 用于添加固定请求头,可以同时添加多个,通过该注解的请求头不会相互覆盖,而是共同存在 @Header 作为方法的参数传入,用于添加不固定的header,它会更新已有请求头 3.请求参数注解 请求参数注解 说明 @Body 多用于Post请求发送非表达数据,根据转换方式将实例对象转化为对应字符串传递参数,比如使用Post发送Json数据,添加GsonConverterFactory则是将body转化为json字符串进行传递 @Filed 多用于Post方式传递参数,需要结合@FromUrlEncoded使用,即以表单的形式传递参数 @FiledMap 多用于Post请求中的表单字段,需要结合@FromUrlEncoded使用 @Part 用于表单字段,Part和PartMap与@multipart注解结合使用,适合文件上传的情况 @PartMap 用于表单字段,默认接受类型是Map,可用于实现多文件上传 @Path 用于Url中的占位符 @Query 用于Get请求中的参数 @QueryMap 与Query类似,用于不确定表单参数 @Url 指定请求路径 4.请求和响应格式(标记)注解 标记类注解 说明 @FromUrlCoded 表示请求发送编码表单数据,每个键值对需要使用@Filed注解 @Multipart 表示请求发送form_encoded数据(使用于有文件上传的场景),每个键值对需要用@Part来注解键名,随后的对象需要提供值 @Streaming 表示响应用字节流的形式返回,如果没有使用注解,默认会把数据全部载入到内存中,该注解在下载大文件时特别有用 相关参考

https://juejin.cn/post/6978777076073660429



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3