Retrofit请求时动态切换IP
创建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相关推荐
- vue 启动项目时动态切换 ip
一般我们在开发的过程中,根据部署的环境不同可能会使用多个ip,这时候就需要到配置文件中更改ip,然后重启项目,但是这样做会有点麻烦,不仅要修改配置文件,还需要重启项目.如果能够在启动项目时根据不同的命 ...
- java实现在Linux系统中动态切换IP
java实现在Linux系统中动态切换IP 本文提供了一个可以在linux系统中,使用Java代码切换本地IP地址的方案: Tips: 1.本程序用于在Linux服务器上切换IP,在windows上无 ...
- python爬虫自动更换ip_Python 爬虫使用动态切换ip防止封杀
对于爬虫被封禁 ! 爬虫一般来说只要你的ip够多,是不容易被封的. 一些中小网站要封杀你,他的技术成本也是很高的,因为大多数网站没有vps,他们用的是虚拟空间或者是sae,bae这样的paas云. 其 ...
- golang http请求时设置代理ip
在http.Client中自定义Transport,设置Proxy即可,目前网上存在很多代理ip网站,本人也写过一些代理ip网址的爬取,见 GitHub // 如果需要代理验证,那么如下进行设置 // ...
- java 动态 ip_java实现动态切换上网IP
动态切换IP的实现主是也由Windows的rasdial命令提供的,其实不是java的功劳,java只是调用一下bat脚本而已: rasdial命令: 拨号 Java代码 : 1. 语法: rasdi ...
- 请求时的编码问题 Use body.encode(‘utf-8‘) if you want to send it encoded in UTF-8
今天发现一个网站,新榜,是各大网站,视频好的排行网站,请求时动态网页的xhr.网络里选择xhr 刷新就可以看到数据. 代码如下: import requestsheaders = {'authorit ...
- [转]IP动态切换脚本
因为公司办公室要设置固定IP才行,而家里的IP段和公司是不一样的,家里采用了DHCP机制,这样每次就得改IP设置,很是不方便,就写了这个脚本来动态切换,很流畅的说! WINXP,WIN7测试通过~嘿嘿 ...
- Xilinx HLS FFT IP核运行时动态配置FFT长度
如上图所示,xilinx hls的fft ip核不仅可以计算固定长度的FFT变换,还可以在运行时动态配置fft变换长度,但其可配置的长度仅限于小于等于最大长度的所有可能的2的幂,即若该fft ip可支 ...
- 【Unity】UGUI动态切换不同尺寸图片时自动设置Image大小
UGUI动态切换不同尺寸图片时自动设置Image大小: 1. image.SetNativeSize(),将Image设置为贴图的原始尺寸 2. sprite.rect获取贴图尺寸,rectTrans ...
最新文章
- angular分页插件tm.pagination
- 序列表转换成横向菜单
- 麦克风阵列音频检查方法和标准
- Shell 自定义函数
- 论文浅尝 | 嵌入常识知识的注意力 LSTM 模型用于特定目标的基于侧面的情感分析...
- Java下List使用subList实现分页获取
- 解决修改sources.list之后update NO_PUBKEY错误
- HDOJ 1004:统计气球数
- 阶段3 1.Mybatis_07.Mybatis的连接池及事务_3 mybatis连接池的分类
- cck8graphpad作图_新经验 | CCK8 实验心得
- 【易我数据恢复】超实用的数据恢复工具
- 在网页中插入视频代码大全
- pads生成bom表
- 数据库系统概论(第七章:数据库设计)
- 转录因子VaERF16和VaMYB306相互作用增强葡萄对灰霉病的抗性
- cpu的核数和进程_多线程,多进程,多核总结
- 905协议第四部分简单说明
- 继续教育计算机专业能学到东西吗,继续教育个人学习心得体会
- hdu 1074 状压dp
- 【大数据】关于Hive的几个需要注意的点
热门文章
- 安装win10出现“计算机意外的重新启动或遇到错误?
- 雷达技术与仿真实现(一)
- 第四代计算机网络是高速互联的什么网,宽带接入网竞赛试题(选择题300道,判断题150道,填空题250道)...
- 教师工资管理系统之随机产生教师详细信息
- 简单一步,轻松下载B站视频 | 实用技能get
- 你的QQ号又被盗了?关于网络安全你所不知道的事情
- 自定义UI 自制表盘
- Echarts圆形占比图改良版
- 生意参谋数据分析专员考试
- 关于网上蛋糕店销售系统的设计答辩问题及回答