From 864bbfb5c2272fc82c3c18c3b01f1bb3c8f7362e Mon Sep 17 00:00:00 2001 From: daizhenyu <1449308021@qq.com> Date: Mon, 14 Oct 2024 10:21:01 +0800 Subject: [PATCH] fix the issue that xds routing fails when okhttp2.2.0 is used Signed-off-by: daizhenyu <1449308021@qq.com> --- .../OkHttpClientInterceptorChainInterceptor.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/sermant-plugins/sermant-router/spring-router-plugin/src/main/java/io/sermant/router/spring/interceptor/OkHttpClientInterceptorChainInterceptor.java b/sermant-plugins/sermant-router/spring-router-plugin/src/main/java/io/sermant/router/spring/interceptor/OkHttpClientInterceptorChainInterceptor.java index 1f3bb51d88..b095e28f51 100644 --- a/sermant-plugins/sermant-router/spring-router-plugin/src/main/java/io/sermant/router/spring/interceptor/OkHttpClientInterceptorChainInterceptor.java +++ b/sermant-plugins/sermant-router/spring-router-plugin/src/main/java/io/sermant/router/spring/interceptor/OkHttpClientInterceptorChainInterceptor.java @@ -17,7 +17,6 @@ package io.sermant.router.spring.interceptor; import com.squareup.okhttp.Headers; -import com.squareup.okhttp.HttpUrl; import com.squareup.okhttp.Request; import io.sermant.core.common.LoggerFactory; @@ -31,6 +30,7 @@ import java.io.IOException; import java.net.URI; +import java.net.URL; import java.util.HashMap; import java.util.Map; import java.util.Optional; @@ -89,8 +89,15 @@ private Map getHeaders(Request request) { } private Request rebuildRequest(Request request, URI uri, ServiceInstance serviceInstance) { + URL url = null; + try { + url = new URL(BaseHttpRouterUtils.rebuildUrlByXdsServiceInstance(uri, serviceInstance)); + } catch (IOException e) { + LOGGER.log(Level.WARNING, "Convert url string to url failed.", e.getMessage()); + return request; + } return request.newBuilder() - .url(HttpUrl.parse(BaseHttpRouterUtils.rebuildUrlByXdsServiceInstance(uri, serviceInstance))) + .url(url) .build(); }