如何在我的控制器中使用 Spring HttpRequest?
How can I use a Spring HttpRequest in my controller?
我已经这样设置了我的测试
@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()
,好像是null。
我正在尝试这样做,以便我可以将请求传递给 UriComponentsBuilder.fromHttpRequest( )
,它由我的控制器中以前的 linkTo
方法调用,但它们没有得到 proxy/null .
如何获取HttpRequest? (注意:我不 want/can 不使用 HttpServletRequest
可以正常通过但不是 UriComponentsBuilder
的正确接口
所以我可以使用 HttpServletRequest
@GetMapping( produces = MediaTypes.HAL_JSON_VALUE )
ResponseEntity<ResourceSupport> index( final HttpServletRequest request ) {
但是必须要包裹起来?通过ServletServerHttpRequest
得到我想要的界面。
HttpRequest httpRequest = new ServletServerHttpRequest( request )
我已经这样设置了我的测试
@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()
,好像是null。
我正在尝试这样做,以便我可以将请求传递给 UriComponentsBuilder.fromHttpRequest( )
,它由我的控制器中以前的 linkTo
方法调用,但它们没有得到 proxy/null .
如何获取HttpRequest? (注意:我不 want/can 不使用 HttpServletRequest
可以正常通过但不是 UriComponentsBuilder
所以我可以使用 HttpServletRequest
@GetMapping( produces = MediaTypes.HAL_JSON_VALUE )
ResponseEntity<ResourceSupport> index( final HttpServletRequest request ) {
但是必须要包裹起来?通过ServletServerHttpRequest
得到我想要的界面。
HttpRequest httpRequest = new ServletServerHttpRequest( request )