【问题标题】:How can I use a Spring HttpRequest in my controller?如何在我的控制器中使用 Spring HttpRequest?
【发布时间】:2016-09-09 05:02:49
【问题描述】:

我已经这样设置了我的测试

@SpringBootTest
@AutoConfigureMockMvc
@RunWith( SpringRunner.class )
public class PublicControllerTest {

    @Autowired
    private MockMvc mvc;

这是我的控制器签名

@GetMapping( produces = MediaTypes.HAL_JSON_VALUE )
ResponseEntity<ResourceSupport> index( final HttpRequest request ) {

现在它似乎是在注入一个代理值,但如果你调用request.getURI() 为例,它似乎是空的。

我正在尝试这样做,以便可以将请求传递给 UriComponentsBuilder.fromHttpRequest( ),该请求由我的控制器中以前的 linkTo 方法调用,并且它们没有获得代理/null。

如何获取 HttpRequest? (注意:我不想/不能使用HttpServletRequest,它可以很好地通过,但不是UriComponentsBuilder 的正确接口

【问题讨论】:

    标签: java spring spring-mvc spring-mvc-test


    【解决方案1】:

    所以我可以使用HttpServletRequest

    @GetMapping( produces = MediaTypes.HAL_JSON_VALUE )
    ResponseEntity<ResourceSupport> index( final HttpServletRequest request ) {
    

    但它必须被包装?通过ServletServerHttpRequest获取我想要的界面。

    HttpRequest httpRequest = new ServletServerHttpRequest( request ) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-29
      • 2013-12-17
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 2018-11-20
      • 2018-10-11
      • 2014-10-16
      相关资源
      最近更新 更多