当前位置:   article > 正文

Android 多个域名自动切换_android中easyhttp请求其他域名

android中easyhttp请求其他域名

创建一个拦截器
判断当前API使用哪个域名

MoreBaseUrlInterceptor
  1. public class MoreBaseUrlInterceptor implements Interceptor {
  2. @Override
  3. public Response intercept(Chain chain) throws IOException {
  4. //获取原始的originalRequest
  5. Request originalRequest = chain.request();
  6. //获取老的url
  7. HttpUrl oldUrl = originalRequest.url();
  8. //获取originalRequest的创建者builder
  9. Request.Builder builder = originalRequest.newBuilder();
  10. //获取头信息的集合如:
  11. List<String> urlnameList = originalRequest.headers("urlname");
  12. if (urlnameList != null && urlnameList.size() > 0) {
  13. //删除原有配置中的值,就是namesAndValues集合里的值
  14. builder.removeHeader("urlname");
  15. //获取头信息中配置的value,如:v2或者v3
  16. String urlname = urlnameList.get(0);
  17. HttpUrl baseURL=null;
  18. //根据头信息中配置的value,来匹配新的base_url地址
  19. if ("v2".equals(urlname)) {
  20. baseURL = HttpUrl.parse(API.BASE_v2);
  21. } else{
  22. baseURL = HttpUrl.parse(API.BASE_v3);
  23. }
  24. //重建新的HttpUrl,需要重新设置的url部分
  25. HttpUrl newHttpUrl = oldUrl.newBuilder()
  26. .scheme(baseURL.scheme())//http协议如:http或者https
  27. .host(baseURL.host())//主机地址
  28. .port(baseURL.port())//端口
  29. .build();
  30. //获取处理后的新newRequest
  31. Request newRequest = builder.url(newHttpUrl).build();
  32. return chain.proceed(newRequest);
  33. }else{
  34. return chain.proceed(originalRequest);
  35. }
  36. }
  37. }

API接口

    通过heades的方式(key,value)  给API进行标识
    拦截器类中 会判断value是v2 还是 v3
 

  1. //首页接口
  2. @Headers("urlname:v2")
  3. @GET("index")
  4. Observable<HomePageBean> homepage(@QueryMap HashMap<String, String> map);
  5. //升级SVIP
  6. @Headers("urlname:v3")
  7. @GET("v3/items")
  8. Observable<UpgradeSVipBean> upgradesvip(@QueryMap HashMap<String, String> map);

API域名

  1. public class API {
  2. public final static String BASE_v2 = "http://xxx";
  3. public final static String BASE_v3 = "http://xxxx";
  4. }

在okhttp网络请求中添加

.addInterceptor(new MoreBaseUrlInterceptor())

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号