import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import java.io.IOException; import cgg.com.sss.R; import okhttp3.Call; import okhttp3.Callback; import okhttp3.Interceptor; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button bt1 = findViewById(R.id.bt1); bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //使用拦截器 OkHttpClient okHttpClient = new OkHttpClient(); okHttpClient.newBuilder().addInterceptor(new MyInterceptor()); Request re = new Request.Builder().url("http://www.baidu.com").build(); Call call = okHttpClient.newCall(re); call.enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { String server = response.header("Server"); Log.d(TAG, "onResponse() returned: " + server); } }); } }); } //创建拦截器 class MyInterceptor implements Interceptor { @Override public Response intercept(Chain chain) throws IOException { //自己的逻辑 //如果访问的是百度,改成八维 //获取请求头 Request request = chain.request(); String host = request.url().host(); if (host.equals("www.baidu.com")) { host = "wwww.bwei.com"; } //重新创建请求 Request newRequest = request.newBuilder().url(host).build(); //让请求去执行就可以了 Response response = chain.proceed(newRequest); return response; } } }
拦截器
最新推荐文章于 2024-08-06 11:03:11 发布