diff --git a/spring-boot-project/spring-boot-docs/pom.xml b/spring-boot-project/spring-boot-docs/pom.xml
index 0027daf6b1..eb3533c634 100644
--- a/spring-boot-project/spring-boot-docs/pom.xml
+++ b/spring-boot-project/spring-boot-docs/pom.xml
@@ -883,6 +883,11 @@
spring-boot-test-support
test
+
+ org.springframework.boot
+ spring-boot-starter-web
+ test
+
diff --git a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
index 80efda6365..7e541b531d 100644
--- a/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
+++ b/spring-boot-project/spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
@@ -7165,8 +7165,9 @@ the following example:
@Test
public void testRequest() throws Exception {
- HttpHeaders headers = template.getForEntity("http://myhost.com/example", String.class).getHeaders();
- assertThat(headers.getLocation().toString(), containsString("myotherhost"));
+ HttpHeaders headers = this.template.getForEntity(
+ "http://myhost.example.com/example", String.class).getHeaders();
+ assertThat(headers.getLocation()).hasHost("other.example.com");
}
}
@@ -7181,32 +7182,7 @@ following example:
[source,java,indent=0]
----
- @RunWith(SpringRunner.class)
- @SpringBootTest
- public class MyTest {
-
- @Autowired
- private TestRestTemplate template;
-
- @Test
- public void testRequest() throws Exception {
- HttpHeaders headers = template.getForEntity("/example", String.class).getHeaders();
- assertThat(headers.getLocation().toString(), containsString("myotherhost"));
- }
-
- @TestConfiguration
- static class Config {
-
- @Bean
- public RestTemplateBuilder restTemplateBuilder() {
- return new RestTemplateBuilder()
- .additionalMessageConverters(...)
- .customizers(...);
- }
-
- }
-
- }
+include::{test-examples}/web/client/SampleWebClientTests.java[tag=test]
----
diff --git a/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/web/client/SampleWebClientConfiguration.java b/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/web/client/SampleWebClientConfiguration.java
new file mode 100644
index 0000000000..6e670b44bd
--- /dev/null
+++ b/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/web/client/SampleWebClientConfiguration.java
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2012-2018 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.boot.docs.web.client;
+
+import java.net.URI;
+
+import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
+import org.springframework.boot.autoconfigure.http.HttpMessageConvertersAutoConfiguration;
+import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration;
+import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration;
+import org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * A sample {@link SpringBootConfiguration} with an example controller.
+ *
+ * @author Stephane Nicoll
+ */
+@SpringBootConfiguration
+@ImportAutoConfiguration({ ServletWebServerFactoryAutoConfiguration.class,
+ DispatcherServletAutoConfiguration.class,
+ JacksonAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class })
+class SampleWebClientConfiguration {
+
+
+ @RestController
+ private static class ExampleController {
+
+ @RequestMapping("/example")
+ public ResponseEntity example() {
+ return ResponseEntity.ok()
+ .location(URI.create("https://other.example.com/example"))
+ .body("test");
+ }
+
+ }
+
+}
diff --git a/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/web/client/SampleWebClientTests.java b/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/web/client/SampleWebClientTests.java
new file mode 100644
index 0000000000..7782bea294
--- /dev/null
+++ b/spring-boot-project/spring-boot-docs/src/test/java/org/springframework/boot/docs/web/client/SampleWebClientTests.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2012-2018 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.boot.docs.web.client;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
+import org.springframework.boot.test.context.TestConfiguration;
+import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.boot.web.client.RestTemplateBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.http.HttpHeaders;
+import org.springframework.test.context.junit4.SpringRunner;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+/**
+ * Example integration test that uses {@link TestRestTemplate}.
+ *
+ * @author Stephane Nicoll
+ */
+// tag::test[]
+@RunWith(SpringRunner.class)
+@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
+public class SampleWebClientTests {
+
+ @Autowired
+ private TestRestTemplate template;
+
+ @Test
+ public void testRequest() {
+ HttpHeaders headers = this.template.getForEntity("/example", String.class)
+ .getHeaders();
+ assertThat(headers.getLocation()).hasHost("other.example.com");
+ }
+
+ @TestConfiguration
+ static class Config {
+
+ @Bean
+ public RestTemplateBuilder restTemplateBuilder() {
+ return new RestTemplateBuilder()
+ .setConnectTimeout(1000)
+ .setReadTimeout(1000);
+ }
+
+ }
+
+}
+// end::test[]