优秀的编程知识分享平台

网站首页 > 技术文章 正文

android学习,OkHttp,拦截器(android学习软件)

nanyue 2024-09-12 15:50:15 技术文章 7 ℃

这里没有用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();;
        }
    }

}
最近发表
标签列表