BrowserMob Proxy を使用しており、運用サーバーからテスト サーバーにトラフィックをリダイレクトしたいと考えています。そのためrewriteUrl
に、次の方法でa を使用しています。
public class Main {
public static void main(String[] args) {
BrowserMobProxyServer server = new BrowserMobProxyServer();
server.setTrustAllServers(true);
server.start(8888);
server.rewriteUrl("(https?://)init.mycompany.com(.*)","$1platform-sandbox.mycompany.com$2//");
if (server.isStarted()) {
System.out.println("Server started on " + server.getClientBindAddress() + ":" + server.getPort());
}
server.addRequestFilter(new RequestFilter() {
@Override
public HttpResponse filterRequest(io.netty.handler.codec.http.HttpRequest httpRequest, HttpMessageContents httpMessageContents, HttpMessageInfo httpMessageInfo) {
System.out.println("REQUEST");
System.out.println("Original: " + httpMessageInfo.getOriginalUrl());
System.out.println("Current: " + httpMessageInfo.getUrl());
return null;
}
});
server.addResponseFilter(new ResponseFilter() {
@Override
public void filterResponse(HttpResponse httpResponse, HttpMessageContents httpMessageContents, HttpMessageInfo httpMessageInfo) {
System.out.println("RESPONSE");
System.out.println("Original: " + httpMessageInfo.getOriginalUrl());
System.out.println("Current: " + httpMessageInfo.getUrl());
if (httpMessageInfo.getOriginalUrl() != httpMessageInfo.getUrl()) {
System.out.printf("DIFFERENT!!!!");
}
}
});
server.newHar("test");
while (true) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
あなたは私が部分的に成功していることに気付くでしょう:
- 2 つの
//
シンボルが最後に追加されます (テストのために追加しました)。 - ただし
init
、platform-sandbox
リクエスト
オリジナル: https://init.mycompany.com
現在: https://init.mycompany.com
リクエスト
オリジナル: https://init.mycompany.com/sdk/v6.4.6?applicationKey=42a8c1f5
現在: https://init.mycompany.com/sdk/v6.4.6?applicationKey=42a8c1f5
応答
オリジナル: https://init.mycompany.com/sdk/v6.4.6?applicationKey=42a8c1f5
現在: https://init.mycompany.com/sdk/v6.4.6?applicationKey=42a8c1f5//