编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

android学习,OkHttp,拦截器(okhttp自定义拦截器放在哪一层)

wxchong 2024-09-28 02:25:38 开源技术 221 ℃ 0 评论

这里没有用android应用,而是用的一个test方法来测试拦截器。

具体就是新建一个空工程,然后在Test里,添加方法,当然,也要添加OkHttp的相关依赖。



就是添加这个,implementation 'com.squareup.okhttp3:okhttp:4.9.0',记得点前面的黄灯,然后点sycn,就是同步这个引用。

然后在manifest里添加<uses-permission android:name="android.permission.INTERNET"/>


再下来就在test里添加代码就行了。


package com.example.test001;

import androidx.annotation.NonNull;

import org.junit.Test;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class JavaTest {
    @Test
    public void testrun(){
        System.out.println("hehe1");
        interceptorTest();
    }

    public void interceptorTest(){
      //创建一个新的OkHttp对象,并为这个对象建立一个新的拦截器
        OkHttpClient okHttpClient=new OkHttpClient.Builder().addInterceptor(new Interceptor() {
            @NonNull
            @Override
            public Response intercept(@NonNull Chain chain) throws IOException {
          //在request里添加header信息,以便实别
                Request request = chain.request().newBuilder().addHeader("os", "android")
                        .addHeader("verion", "1.0").build();
          //信息处理得到response对象,然后返回这个带有信息的对象。
                Response response=chain.proceed(request);
                return response;
            }
        }).build();

        Request request=new Request.Builder().url("https://www.httpbin.org/get?a=1&b=2").build();
        Call call=okHttpClient.newCall(request);
        try{
            Response response=call.execute();
            System.out.println(response.body().string());
        }catch (IOException e){
            e.printStackTrace();;
        }
    }

}

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表