3.8、使用 HttpEntity

  这一部分比较简短。示例见这个项目的mvc分支下的 HttpEntityController.java。

  HttpEntity@RequestBody@ResponseBody很像。出了能够访问请求和响应体,HttpEntity(和子类ResponseEntity)也能访问请求(和响应)头,就像这样:

@RequestMapping("/something")
public ResponseEntity<String> handle(HttpEntity<byte[]> requestEntity) 
        throws UnsupportedEncodingException 
{
    String requestHeader = requestEntity.getHeaders().getFirst("MyRequestHeader");
    byte[] requestBody = requestEntity.getBody();

    // do something with request header and body

    HttpHeaders responseHeaders = new HttpHeaders();
    responseHeaders.set("MyResponseHeader", "MyValue");
    return new ResponseEntity<String>("Hello World", responseHeaders, HttpStatus.CREATED);
}

  上面的例子获取MyRequestHeader请求头的值,读取请求体为字节数组。还把MyResponseHeader添加到响应中,把Hello World写到响应流中,并设置响应状态码为 201(创建)。

  就像@RequestBody@ResponseBody一样,Spring 使用HttpMessageConverter在请求和响应流只见进行转换。更多关于这些转换器的消息,参见消息转换器

    原文作者:行一
    原文地址: https://segmentfault.com/a/1190000006955564
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞