首页 > Web开发 > 详细

HTTP请求中返回文件

时间:2020-05-15 19:29:53      阅读:106      评论:0      收藏:0      [点我收藏+]

HTTP的一个请求或响应,都叫做实体(entity)。在Spring中,有一个HttpEntity类,就表示HTTP请求实体,它有两个子类RequestEntity和ResponseEntity,分别表示请求实体和响应实体。

不论是请求实体还是响应实体,都包含首部(header)和主体(body)(对于GET请求,body可能为空)。在Spring中,表示header的类为HttpHeaders,HttpHeaders是MultiValueMap<String, String>的子类,说明一个header可以有多个值;而body则为泛型,可以为任意类型。

 

RequestEntity 的使用

RequestEntity 相对于

 

ResponseEntity 的使用

ResponseEntity 是HTTP响应实体,相对于父类HttpEntity,增加了响应状态码。状态码用类HttpStatus表示,它包含了状态值(value,如200)和原因短语(reason phrase,如OK)。

ResponseEntity 可以在HTTP客户端请求数据时使用,也可以在HTTP服务端处理请求时使用。

HTTP客户端通过RestTemplate的getForEntity() 或 exchange() 方法请求数据时返回ResponseEntity:

ResponseEntity<String> entity = template.getForEntity("https://example.com", String.class);
String body = entity.getBody();
MediaType contentType = entity.getHeaders().getContentType();
HttpStatus statusCode = entity.getStatusCode();

在Spring的Controller方法中使用ResponseEntity:

@RequestMapping("/handle")
public ResponseEntity<String> handle() {
    URI location = ...;
    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.setLocation(location);
    responseHeaders.set("MyResponseHeader", "MyValue");
    return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
}

 

参考文档

 

HTTP请求中返回文件

原文:https://www.cnblogs.com/haycheng/p/12895759.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!