2014-09-05 31 views
0

我有一個處理POST請求的Spring HttpRequestHandler。但是,HttpServletRequest爲空。Spring:爲什麼HttpServletRequest.getReader和getInputStream從PO​​ST請求中給出空的HttpRequestHandler

我知道我需要調用一個或另一個,但它看起來像兩個都是空的。那麼是什麼給了?春天有可能粗暴地抓住了這條小溪嗎?如果是這樣,我怎麼能在POST請求中獲取數據?

class MyRequestHandler extends HttpRequestHandler { 
    override def handleRequest(request: HttpServletRequest, response: HttpServletResponse): Unit = { 
    println("HANDLE " + request.getReader()) // NULL 
    println("HANDLE " + request.getInputStream()) // NULL 
    } 
} 
... 
@Configuration 
@EnableWebMvc 
class MyConfig { 
    @Bean(name = Array("/endpoint")) 
    def endpointHandler(): MyRequestHandler = new MyRequestHandler() 
    ... 
} 

回答

0

它看起來像沒有數據發佈時InputStream對象爲null。

爲什麼沒有發佈數據? RTFM的情況下:

var mockMvc: MockMvc = ... 
... 
val result = mockMvc 
    .perform(
    post(url, postData) 
     .contentType(MediaType.APPLICATION_JSON)) 

需要像這樣

val result = mockMvc 
    .perform(
    post(url) 
     .content(postData) 
     .contentType(MediaType.APPLICATION_JSON)) 

隨後PARAMS發佈的URL參數:http://docs.spring.io/spring/docs/3.2.0.RC1_to_3.2.0.RC2/Spring%20Framework%203.2.0.RC2/org/springframework/test/web/servlet/request/MockMvcRequestBuilders.html

相關問題