类 MockHttpServletRequestBuilder
- java.lang.Object
- org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder
- 所有已实现的接口:
Mergeable
,ConfigurableSmartRequestBuilder<MockHttpServletRequestBuilder>
,RequestBuilder
,SmartRequestBuilder
public class MockHttpServletRequestBuilder extends Object implements ConfigurableSmartRequestBuilder<MockHttpServletRequestBuilder>, Mergeable
Default builder forMockHttpServletRequest
required as input to perform requests inMockMvc
.Application tests will typically access this builder through the static factory methods in
MockMvcRequestBuilders
.This class is not open for extension. To apply custom initialization to the created
MockHttpServletRequest
, please use thewith(RequestPostProcessor)
extension point.- 从以下版本开始:
- 3.2
- 作者:
- Rossen Stoyanchev, Juergen Hoeller, Arjen Poutsma, Sam Brannen, Kamill Sokol
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 MockHttpServletRequestBuilder
accept(String... mediaTypes)
Set the 'Accept' header using raw String values, possibly not even well formed (for testing purposes).MockHttpServletRequestBuilder
accept(MediaType... mediaTypes)
Set the 'Accept' header to the given media type(s).MockHttpServletRequest
buildRequest(ServletContext servletContext)
Build aMockHttpServletRequest
.MockHttpServletRequestBuilder
characterEncoding(String encoding)
Set the character encoding of the request.MockHttpServletRequestBuilder
content(byte[] content)
Set the request body.MockHttpServletRequestBuilder
content(String content)
Set the request body as a UTF-8 String.MockHttpServletRequestBuilder
contentType(String contentType)
Set the 'Content-Type' header of the request as a raw String value, possibly not even well formed (for testing purposes).MockHttpServletRequestBuilder
contentType(MediaType contentType)
Set the 'Content-Type' header of the request.MockHttpServletRequestBuilder
contextPath(String contextPath)
Specify the portion of the requestURI that represents the context path.MockHttpServletRequestBuilder
cookie(Cookie... cookies)
Add the given cookies to the request.protected MockHttpServletRequest
createServletRequest(ServletContext servletContext)
Create a newMockHttpServletRequest
based on the suppliedServletContext
.MockHttpServletRequestBuilder
flashAttr(String name, Object value)
Set an "input" flash attribute.MockHttpServletRequestBuilder
flashAttrs(Map<String,Object> flashAttributes)
Set flash attributes.MockHttpServletRequestBuilder
header(String name, Object... values)
Add a header to the request.MockHttpServletRequestBuilder
headers(HttpHeaders httpHeaders)
Add all headers to the request.boolean
isMergeEnabled()
Is merging enabled for this particular instance?MockHttpServletRequestBuilder
locale(Locale locale)
Set the locale of the request, overriding any previous locales.MockHttpServletRequestBuilder
locale(Locale... locales)
Add the specified locales as preferred request locales.Object
merge(Object parent)
Merges the properties of the "parent" RequestBuilder accepting values only if not already set in "this" instance.MockHttpServletRequestBuilder
param(String name, String... values)
Add a request parameter toMockHttpServletRequest.getParameterMap()
.MockHttpServletRequestBuilder
params(MultiValueMap<String,String> params)
Variant ofparam(String, String...)
with aMultiValueMap
.MockHttpServletRequestBuilder
pathInfo(String pathInfo)
Specify the portion of the requestURI that represents the pathInfo.MockHttpServletRequest
postProcessRequest(MockHttpServletRequest request)
Apply request post processing.MockHttpServletRequestBuilder
principal(Principal principal)
Set the principal of the request.MockHttpServletRequestBuilder
queryParam(String name, String... values)
Append to the query string and also add to therequest parameters
map.MockHttpServletRequestBuilder
queryParams(MultiValueMap<String,String> params)
Append to the query string and also add to theparams(MultiValueMap)
request parameters} map.MockHttpServletRequestBuilder
requestAttr(String name, Object value)
Set a request attribute.MockHttpServletRequestBuilder
secure(boolean secure)
Set the secure property of theServletRequest
indicating use of a secure channel, such as HTTPS.MockHttpServletRequestBuilder
servletPath(String servletPath)
Specify the portion of the requestURI that represents the path to which the Servlet is mapped.MockHttpServletRequestBuilder
session(MockHttpSession session)
Set the HTTP session to use, possibly re-used across requests.MockHttpServletRequestBuilder
sessionAttr(String name, Object value)
Set a session attribute.MockHttpServletRequestBuilder
sessionAttrs(Map<String,Object> sessionAttributes)
Set session attributes.MockHttpServletRequestBuilder
with(RequestPostProcessor postProcessor)
An extension point for further initialization ofMockHttpServletRequest
in ways not built directly into theMockHttpServletRequestBuilder
.
方法详细资料
contextPath
public MockHttpServletRequestBuilder contextPath(String contextPath)
Specify the portion of the requestURI that represents the context path. The context path, if specified, must match to the start of the request URI.In most cases, tests can be written by omitting the context path from the requestURI. This is because most applications don't actually depend on the name under which they're deployed. If specified here, the context path must start with a "/" and must not end with a "/".
servletPath
public MockHttpServletRequestBuilder servletPath(String servletPath)
Specify the portion of the requestURI that represents the path to which the Servlet is mapped. This is typically a portion of the requestURI after the context path.In most cases, tests can be written by omitting the servlet path from the requestURI. This is because most applications don't actually depend on the prefix to which a servlet is mapped. For example if a Servlet is mapped to
"/main/*"
, tests can be written with the requestURI"/accounts/1"
as opposed to"/main/accounts/1"
. If specified here, the servletPath must start with a "/" and must not end with a "/".
pathInfo
public MockHttpServletRequestBuilder pathInfo(@Nullable String pathInfo)
Specify the portion of the requestURI that represents the pathInfo.If left unspecified (recommended), the pathInfo will be automatically derived by removing the contextPath and the servletPath from the requestURI and using any remaining part. If specified here, the pathInfo must start with a "/".
If specified, the pathInfo will be used as-is.
secure
public MockHttpServletRequestBuilder secure(boolean secure)
Set the secure property of theServletRequest
indicating use of a secure channel, such as HTTPS.- 参数:
secure
- whether the request is using a secure channel
characterEncoding
public MockHttpServletRequestBuilder characterEncoding(String encoding)
Set the character encoding of the request.- 参数:
encoding
- the character encoding
content
public MockHttpServletRequestBuilder content(byte[] content)
Set the request body.If content is provided and
contentType(MediaType)
is set toapplication/x-www-form-urlencoded
, the content will be parsed and used to populate therequest parameters
map.- 参数:
content
- the body content
content
public MockHttpServletRequestBuilder content(String content)
Set the request body as a UTF-8 String.If content is provided and
contentType(MediaType)
is set toapplication/x-www-form-urlencoded
, the content will be parsed and used to populate therequest parameters
map.- 参数:
content
- the body content
contentType
public MockHttpServletRequestBuilder contentType(MediaType contentType)
Set the 'Content-Type' header of the request.If content is provided and
contentType
is set toapplication/x-www-form-urlencoded
, the content will be parsed and used to populate therequest parameters
map.- 参数:
contentType
- the content type
contentType
public MockHttpServletRequestBuilder contentType(String contentType)
Set the 'Content-Type' header of the request as a raw String value, possibly not even well formed (for testing purposes).- 参数:
contentType
- the content type- 从以下版本开始:
- 4.1.2
accept
public MockHttpServletRequestBuilder accept(MediaType... mediaTypes)
Set the 'Accept' header to the given media type(s).- 参数:
mediaTypes
- one or more media types
accept
public MockHttpServletRequestBuilder accept(String... mediaTypes)
Set the 'Accept' header using raw String values, possibly not even well formed (for testing purposes).- 参数:
mediaTypes
- one or more media types; internally joined as comma-separated String
header
public MockHttpServletRequestBuilder header(String name, Object... values)
Add a header to the request. Values are always added.- 参数:
name
- the header namevalues
- one or more header values
headers
public MockHttpServletRequestBuilder headers(HttpHeaders httpHeaders)
Add all headers to the request. Values are always added.- 参数:
httpHeaders
- the headers and values to add
param
public MockHttpServletRequestBuilder param(String name, String... values)
Add a request parameter toMockHttpServletRequest.getParameterMap()
.In the Servlet API, a request parameter may be parsed from the query string and/or from the body of an
application/x-www-form-urlencoded
request. This method simply adds to the request parameter map. You may also use add Servlet request parameters by specifying the query or form data through one of the following:- Supply a URL with a query to
MockMvcRequestBuilders
. - Add query params via
queryParam(java.lang.String, java.lang.String...)
orqueryParams
. - Provide
content
withcontentType
application/x-www-form-urlencoded
.
- 参数:
name
- the parameter namevalues
- one or more values
- Supply a URL with a query to
params
public MockHttpServletRequestBuilder params(MultiValueMap<String,String> params)
Variant ofparam(String, String...)
with aMultiValueMap
.- 参数:
params
- the parameters to add- 从以下版本开始:
- 4.2.4
queryParam
public MockHttpServletRequestBuilder queryParam(String name, String... values)
Append to the query string and also add to therequest parameters
map. The parameter name and value are encoded when they are added to the query string.- 参数:
name
- the parameter namevalues
- one or more values- 从以下版本开始:
- 5.2.2
queryParams
public MockHttpServletRequestBuilder queryParams(MultiValueMap<String,String> params)
Append to the query string and also add to theparams(MultiValueMap)
request parameters} map. The parameter name and value are encoded when they are added to the query string.- 参数:
params
- the parameters to add- 从以下版本开始:
- 5.2.2
cookie
public MockHttpServletRequestBuilder cookie(Cookie... cookies)
Add the given cookies to the request. Cookies are always added.- 参数:
cookies
- the cookies to add
locale
public MockHttpServletRequestBuilder locale(Locale... locales)
Add the specified locales as preferred request locales.- 参数:
locales
- the locales to add- 从以下版本开始:
- 4.3.6
- 另请参阅:
locale(Locale)
locale
public MockHttpServletRequestBuilder locale(@Nullable Locale locale)
Set the locale of the request, overriding any previous locales.- 参数:
locale
- the locale, ornull
to reset it- 另请参阅:
locale(Locale...)
requestAttr
public MockHttpServletRequestBuilder requestAttr(String name, Object value)
Set a request attribute.- 参数:
name
- the attribute namevalue
- the attribute value
sessionAttr
public MockHttpServletRequestBuilder sessionAttr(String name, Object value)
Set a session attribute.- 参数:
name
- the session attribute namevalue
- the session attribute value
sessionAttrs
public MockHttpServletRequestBuilder sessionAttrs(Map<String,Object> sessionAttributes)
Set session attributes.- 参数:
sessionAttributes
- the session attributes
flashAttr
public MockHttpServletRequestBuilder flashAttr(String name, Object value)
Set an "input" flash attribute.- 参数:
name
- the flash attribute namevalue
- the flash attribute value
flashAttrs
public MockHttpServletRequestBuilder flashAttrs(Map<String,Object> flashAttributes)
Set flash attributes.- 参数:
flashAttributes
- the flash attributes
session
public MockHttpServletRequestBuilder session(MockHttpSession session)
Set the HTTP session to use, possibly re-used across requests.Individual attributes provided via
sessionAttr(String, Object)
override the content of the session provided here.- 参数:
session
- the HTTP session
principal
public MockHttpServletRequestBuilder principal(Principal principal)
Set the principal of the request.- 参数:
principal
- the principal
with
public MockHttpServletRequestBuilder with(RequestPostProcessor postProcessor)
An extension point for further initialization ofMockHttpServletRequest
in ways not built directly into theMockHttpServletRequestBuilder
. Implementation of this interface can have builder-style methods themselves and be made accessible through static factory methods.- 指定者:
with
在接口中ConfigurableSmartRequestBuilder<MockHttpServletRequestBuilder>
- 参数:
postProcessor
- a post-processor to add
isMergeEnabled
public boolean isMergeEnabled()
Is merging enabled for this particular instance?- 指定者:
isMergeEnabled
在接口中Mergeable
- 返回:
- always returns
true
.
merge
public Object merge(@Nullable Object parent)
Merges the properties of the "parent" RequestBuilder accepting values only if not already set in "this" instance.
buildRequest
public final MockHttpServletRequest buildRequest(ServletContext servletContext)
Build aMockHttpServletRequest
.- 指定者:
buildRequest
在接口中RequestBuilder
- 参数:
servletContext
- theServletContext
to use to create the request- 返回:
- the request
createServletRequest
protected MockHttpServletRequest createServletRequest(ServletContext servletContext)
Create a newMockHttpServletRequest
based on the suppliedServletContext
.Can be overridden in subclasses.
postProcessRequest
public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request)
从接口复制的说明:SmartRequestBuilder
Apply request post processing. Typically that means invoking one or moreorg.springframework.test.web.servlet.request.RequestPostProcessors
.- 指定者:
postProcessRequest
在接口中SmartRequestBuilder
- 参数:
request
- the request to initialize- 返回:
- the request to use, either the one passed in or a wrapped one