2013-06-25 44 views
2

我有一行代碼執行一個API的請求,但我無法弄清楚請求的確切格式。 mapper.writeValueAsString from hereMockMvc顯示相應的curl命令或http請求

mockMvchere

mockMvc.perform(post("/press/group").param("filterId", filterId).content(mapper.writeValueAsString(someObject)).contentType(MediaType.APPLICATION_JSON)) 

我想要的代碼到Python轉換,如果有辦法讓我的mockMvc輸出相應的HTML請求,這將是非常有益的。我查詢API文檔缺乏

感謝任何指導是非常讚賞

回答

0

不知道mockMVC,但如果這被在HTML頁面中呈現,你可以使用Chrome開發者工具來生成捲曲聲明給你。

啓動工具/開發人員工具,單擊網絡選項卡,單擊導致請求的鏈接/按鈕/東西,在網絡選項卡中找到請求,右鍵單擊,複製爲cUrl。

很明顯,如果它沒有在HTML頁面中呈現,這不會有很大的幫助。的mapper.writeValueAsString(someObject)

這種串串的

+0

謝謝。它不在HTML頁面中,但這很好理解。 – user2520778

0

獲取價值是JSON (MediaType.APPLICATION_JSON)所以它應該是這樣的:

{"attribute":"value","attribute":"value"} 

而且param("filterId", filterId) 被添加到您的網址(可變filterId是一些字符串,以便將其解壓縮)

/press/group?filterId:filterIdString 

粘貼到捲曲消息:

curl -X POST -d '{"attribute":"value","attribute":"value"}' -H "Content-Type: application/json" "admin:[email protected]:8080/press/group?filterId:filterId" -i 

看響應

說明

X類型的請求

-d數據

-H內容類型

admin:pa[email protected]憑證

-i信息

0

MockMvc允許您打印請求和響應。 在你的情況,你應該做的:

mockMvc.perform(post("/press/group").param("filterId", filterId).content(mapper.writeValueAsString(someObject)).contentType(MediaType.APPLICATION_JSON)).andDo(print()); 

這將打印輸出到控制檯,它會是這個樣子:

MockHttpServletRequest: 
     HTTP Method = POST 
     Request URI = /press/group 
      Parameters = {filterId=[filterId_val]} 
      Headers = {} 
      Handler: 
       Type = com.yourCompany.yourController 
       Method = public ReturnType com.yourCompany.yourController.yourHandlerMethod(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse,java.lang.String) 
       Async: 
     Async started = false 
     Async result = null 
Resolved Exception: 
       Type = null 
     ModelAndView: 
      View name = null 
       View = null 
       Model = null 
      FlashMap: 
MockHttpServletResponse: 
       Status = 200 
     Error message = null 
      Headers = {} 
     Content type = null 
       Body = {"val1" : "val_one"} 
     Forwarded URL = null 
     Redirected URL = null 
      Cookies = [] 

這應該是足夠的信息,爲您構建在Python中的http請求。