设置响应头
Servlet层面 使用HttpServletResponse
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/hello")
public String hello(HttpServletResponse response) {
response.setHeader("X-Custom-Header", "my-value");
response.setContentType("text/html");
return "Hello, World!";
}
}
Spring MVC层面 使用ResponseEntity
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.http.HttpHeaders;
@RestController
public class MyController {
@GetMapping("/hello")
public ResponseEntity<String> hello() {
HttpHeaders headers = new HttpHeaders();
headers.add("X-Custom-Header", "my-value");
headers.setContentType(org.springframework.http.MediaType.TEXT_HTML);
return ResponseEntity.ok()
.headers(headers)
.body("Hello, World!");
}
}
设置请求头
使用RestTemplate
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
public class MyClient {
public static void main(String[] args) {
RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.add("X-Custom-Header", "my-value");
headers.setContentType(org.springframework.http.MediaType.APPLICATION_JSON);
HttpEntity<String> entity = new HttpEntity<>("some json body", headers);
ResponseEntity<String> response = restTemplate.exchange(
"http://example.com",
HttpMethod.GET,
entity,
String.class
);
System.out.println(response.getBody());
}
}
使用HttpClient
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class HttpClientExample {
public static void main(String[] args) {
HttpClient httpClient = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://example.com"))
.header("User-Agent", "Java 11 HttpClient")
.header("Accept", "application/json")
.GET()
.build();
try {
HttpResponse<String> response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println("Response Code: " + response.statusCode());
System.out.println("Response Body: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}
}
}