2

Spring Cloud Ribbon 的上手非常简单,它使用 REST 模板与后端服务器通信。

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

4

1 回答 1

3

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

@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")));
}
于 2017-03-25T16:34:24.527 回答