Android 使用 Retrofit 发送网络请求

简介

在Android应用中,如果不是单机的话,应该都有请求后端接口API的情况,本篇文章就介绍下Retrofit在Android中如何进行使用的

相关代码

我们以一个简单的登录接口为例

完整代码GitHub上有:https://github.com/lw1243925457/self_growth_android

仅做代码参考,目前数据监控上传是有了,但界面这些还很粗糙,没有完善

相关的依赖引入

首先我们在工程中引入相关的依赖:

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

相关的手机权限开启

需要在文件中开启网络权限:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.selfgrowth">

    <uses-permission android:name="android.permission.INTERNET"/>

    <application
    ......
    </application>

</manifest>

配置Retrofit Client

Client的相关配置:单例,配置基于OKHTTP,Gson序列化;OKHTTP中添加了请求拦截器

@Data
public class RetrofitClient {
   

    private static final RetrofitClient instance = new RetrofitClient();

    private final Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(HttpConfig.ADDRESS) //基础url,其他部分在GetRequestInterface里
            .client(httpClient())
            .addConverterFactory(GsonConverterFactory.create()) //Gson数据转换器
            .build();

    public static RetrofitClient getInstance() {
   
        return instance;
    }

    private OkHttpClient httpClient() {
   
        return new OkHttpClient.Builder()
                .addInterceptor(new AccessTokenInterceptor())
                .connectTimeout(20, TimeUnit.SECONDS)
                .build();
    }
}

配置通用的请求拦截器

比如在请求中,带上Authorization等

public class AccessTokenInterceptor implements Interceptor {
   

    @NonNull
    @Override
    public Response intercept(@NonNull Chain chain) throws IOException {
   
        if (UserCache.getInstance()
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值