创建BaseUrlInterceptor.java文件


import android.util.Log;
import java.io.IOException;
import java.util.List;
import okhttp3.HttpUrl;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;public class BaseUrlInterceptor implements Interceptor {public static String baseUrl = "https://192.168.1.1/"; @Overridepublic Response intercept(Chain chain) throws IOException {//获取requestRequest request = chain.request();//从request中获取原有的HttpUrl实例oldHttpUrlHttpUrl oldHttpUrl = request.url();//获取request的创建者builderRequest.Builder builder = request.newBuilder();//从request中获取headers,通过给定的键url_name//如果有这个header,先将配置的header删除,因此header仅用作app和okhttp之间使用builder.removeHeader("urlname");//匹配获得新的BaseUrlHttpUrl newBaseUrl = null;Log.e("Url", "intercept: "+oldHttpUrl.toString());newBaseUrl = HttpUrl.parse(baseUrl);//重建新的HttpUrl,修改需要修改的url部分HttpUrl newFullUrl = oldHttpUrl.newBuilder().host(newBaseUrl.host())//更换主机名.port(newBaseUrl.port())//更换端口.build();//重建这个request,通过builder.url(newFullUrl).build();// 然后返回一个response至此结束修改Log.e("Url", "intercept: "+newFullUrl.toString());return chain.proceed(builder.url(newFullUrl).build());}
}

调用地址

OkHttpClient okHttpClient = new OkHttpClient.Builder().cache(cache).addInterceptor(loggingInterceptor).addInterceptor(new BaseUrlInterceptor()) //调用自己写的拦截器.connectTimeout(7, TimeUnit.SECONDS).readTimeout(7, TimeUnit.SECONDS).writeTimeout(7, TimeUnit.SECONDS).build();

Retrofit请求时动态切换IP相关推荐

  1. vue 启动项目时动态切换 ip

    一般我们在开发的过程中,根据部署的环境不同可能会使用多个ip,这时候就需要到配置文件中更改ip,然后重启项目,但是这样做会有点麻烦,不仅要修改配置文件,还需要重启项目.如果能够在启动项目时根据不同的命 ...

  2. java实现在Linux系统中动态切换IP

    java实现在Linux系统中动态切换IP 本文提供了一个可以在linux系统中,使用Java代码切换本地IP地址的方案: Tips: 1.本程序用于在Linux服务器上切换IP,在windows上无 ...

  3. python爬虫自动更换ip_Python 爬虫使用动态切换ip防止封杀

    对于爬虫被封禁 ! 爬虫一般来说只要你的ip够多,是不容易被封的. 一些中小网站要封杀你,他的技术成本也是很高的,因为大多数网站没有vps,他们用的是虚拟空间或者是sae,bae这样的paas云. 其 ...

  4. golang http请求时设置代理ip

    在http.Client中自定义Transport,设置Proxy即可,目前网上存在很多代理ip网站,本人也写过一些代理ip网址的爬取,见 GitHub // 如果需要代理验证,那么如下进行设置 // ...

  5. java 动态 ip_java实现动态切换上网IP

    动态切换IP的实现主是也由Windows的rasdial命令提供的,其实不是java的功劳,java只是调用一下bat脚本而已: rasdial命令: 拨号 Java代码 : 1. 语法: rasdi ...

  6. 请求时的编码问题 Use body.encode(‘utf-8‘) if you want to send it encoded in UTF-8

    今天发现一个网站,新榜,是各大网站,视频好的排行网站,请求时动态网页的xhr.网络里选择xhr 刷新就可以看到数据. 代码如下: import requestsheaders = {'authorit ...

  7. [转]IP动态切换脚本

    因为公司办公室要设置固定IP才行,而家里的IP段和公司是不一样的,家里采用了DHCP机制,这样每次就得改IP设置,很是不方便,就写了这个脚本来动态切换,很流畅的说! WINXP,WIN7测试通过~嘿嘿 ...

  8. Xilinx HLS FFT IP核运行时动态配置FFT长度

    如上图所示,xilinx hls的fft ip核不仅可以计算固定长度的FFT变换,还可以在运行时动态配置fft变换长度,但其可配置的长度仅限于小于等于最大长度的所有可能的2的幂,即若该fft ip可支 ...

  9. 【Unity】UGUI动态切换不同尺寸图片时自动设置Image大小

    UGUI动态切换不同尺寸图片时自动设置Image大小: 1. image.SetNativeSize(),将Image设置为贴图的原始尺寸 2. sprite.rect获取贴图尺寸,rectTrans ...

最新文章

  1. angular分页插件tm.pagination
  2. 序列表转换成横向菜单
  3. 麦克风阵列音频检查方法和标准
  4. Shell 自定义函数
  5. 论文浅尝 | 嵌入常识知识的注意力 LSTM 模型用于特定目标的基于侧面的情感分析...
  6. Java下List使用subList实现分页获取
  7. 解决修改sources.list之后update NO_PUBKEY错误
  8. HDOJ 1004:统计气球数
  9. 阶段3 1.Mybatis_07.Mybatis的连接池及事务_3 mybatis连接池的分类
  10. cck8graphpad作图_新经验 | CCK8 实验心得
  11. 【易我数据恢复】超实用的数据恢复工具
  12. 在网页中插入视频代码大全
  13. pads生成bom表
  14. 数据库系统概论(第七章:数据库设计)
  15. 转录因子VaERF16和VaMYB306相互作用增强葡萄对灰霉病的抗性
  16. cpu的核数和进程_多线程,多进程,多核总结
  17. 905协议第四部分简单说明
  18. 继续教育计算机专业能学到东西吗,继续教育个人学习心得体会
  19. hdu 1074 状压dp
  20. 【大数据】关于Hive的几个需要注意的点

热门文章

  1. 安装win10出现“计算机意外的重新启动或遇到错误?
  2. 雷达技术与仿真实现(一)
  3. 第四代计算机网络是高速互联的什么网,宽带接入网竞赛试题(选择题300道,判断题150道,填空题250道)...
  4. 教师工资管理系统之随机产生教师详细信息
  5. 简单一步,轻松下载B站视频 | 实用技能get
  6. 你的QQ号又被盗了?关于网络安全你所不知道的事情
  7. 自定义UI 自制表盘
  8. Echarts圆形占比图改良版
  9. 生意参谋数据分析专员考试
  10. 关于网上蛋糕店销售系统的设计答辩问题及回答