Open wayddmldbzz opened 4 years ago
把代码贴出来看一下吧
.proxyInterceptInitializer(new HttpProxyInterceptInitializer() {
@Override
public void init(HttpProxyInterceptPipeline pipeline) {
pipeline.addLast(new HttpProxyIntercept() {
@Override
public void beforeRequest(Channel clientChannel, HttpRequest httpRequest, HttpProxyInterceptPipeline pipeline) throws Exception {
jsonArray.forEach(o -> {
JSONObject jsonObject = JSON.parseObject(JSONObject.toJSONString(o));
// 这里的判断是整个域名替换,这样是没问题的
// 如果我在这里的判断加上判断只替换这个域名下部分接口的链接地址,那么被替换的接口就没有生效还是会指向本身的地址不是我替换的地址
if (pipeline.getRequestProto().getHost().equals(jsonObject.getString("old"))) {
pipeline.getRequestProto().setHost(jsonObject.getString("new"));
}
});
pipeline.beforeRequest(clientChannel, httpRequest);
}
});
});
如果是要修改uri
的话,可以通过修改httpRequest
对象实现,例如:
httpRequest.setUri("/api2")
@monkeyWie 不是修改uri,使用的时候一个域名下面有很多uri(其实就是有很多接口),如果所有接口都修改域名地址是没问题的,但是我如果要判断这个域名下某个uri修改域名地址,其余的uri不修改,这样的话修改的是不生效的
之前的问题描述不对,我觉得我的现象是,改一个域名下所有的接口的跳转地址是没问题的,但是如果我只想修改一个域名下部分接口的地址貌似不行 例如:域名 www.aaaa.com 下面有2个接口 我只想把其中一个接口的链接地址修改下,剩下的还用本身的链接地址,这样没生效,调用的还是之前的。