spring - 如何在 Spring Cloud Ribbon 中使用 okhttp

标签 spring okhttp netflix-ribbon spring-cloud-square

Spring Cloud Ribbon的上手非常简单,就是使用rest模板与后端服务器进行通信。

但是在我们的项目中我们更喜欢使用okhttp来做http请求,有人可以帮忙吗?

最佳答案

您可以查看spring-cloud-square该项目在 Github 上通过 Spring Cloud Netflix 提供与 Square 的 OkHttpClient 和 Netflix Ribbon 的集成。我们看OkHttpRibbonInterceptorTests.java class中的一个测试方法

@Test
@SneakyThrows
public void httpClientWorks() {
    Request request = new Request.Builder()
            // here you use a service id, or virtual hostname
            // rather than an actual host:port, ribbon will
            // resolve it
            .url("http://" + SERVICE_ID + "/hello")
            .build();
    Response response = builder.build().newCall(request).execute();
    Hello hello = new ObjectMapper().readValue(response.body().byteStream(), Hello.class);
    assertThat("response was wrong", hello.getValue(), is(equalTo("hello okhttp")));
}

关于spring - 如何在 Spring Cloud Ribbon 中使用 okhttp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43018511/

相关文章:

java - 在 spring jpa 中处理来自数据库的空值

httpclient - zuul 代理缓慢 - RibbonLoadBalancingHttpClient

java - Ribbon 客户端无法发现在 eureka 中注册的微服务

java - 大负载 OkHTTP 上的流意外结束

android - OkHttp + Retrofit libssl 在两种方式的 SSL 身份验证中崩溃

java - 如何通过 OkHttp 向 HTTP GET 请求添加查询参数?

java - 即使在我停止注册服务器后,Eureka 客户端仍然可以工作并相互通信。如何?

java - @Scheduled 使用 spring 4 java 配置运行两次

java - 多个webapp共享的restapi的身份验证

java - 如何将一个 Spring Boot 应用程序作为依赖项包含在另一个应用程序中