我有春天SVM運行的Web應用程序在此方向運行:Spring MVC的HTTP REST解釋,POST + GET
http://localhost:8085/mongodb
,處理GET和POST請求的外觀看起來像這樣的主控制器:
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
private static final String DATA_FIELD = "Data";
@RequestMapping(value = "/", method = RequestMethod.GET)
public String home(Model model) {
return "home";
}
@RequestMapping(value = "/", method = RequestMethod.POST)
public ModelAndView createDomain(@RequestBody Domain Domain, HttpServletResponse httpresponse, WebRequest request) throws Exception{
logger.info("Welcome home! The client locale is {}.", "FUCK YOU2");
Domain createdDomain = Domain;
logger.info("Post Received" + Domain.toString());
//Create HTTP Response for the POST request
httpresponse.setStatus(HttpStatus.CREATED.value());
MongoOperations mongoOps = new MongoTemplate(new Mongo(),"rest_database");
mongoOps.insert(Domain);
System.out.println("PRINTED");
return new ModelAndView("post", DATA_FIELD, createdDomain);
}
}
顯然代碼正在工作。當我使用Chrome擴展高級休息客戶端(here)發送POST請求時,客戶端每次都會發送POST和GET,所以我總是在GET方法中獲取頁面。
奇怪的是,谷歌的Chrome網絡開發工具顯示一個POST請求等待,然後返回OK GET請求,網絡調試器顯示這樣的:
https://dl.dropboxusercontent.com/u/7437425/network_debugger.png
當我發出這個請求:
https://dl.dropboxusercontent.com/u/7437425/post_response.png
我想知道這是否是發送POST,通過發送GET不久之後的標準方法。
一個有趣的事情是,我從來沒有控制檯顯示結果這個命令:
logger.info("Welcome home! The client locale is {}.", "FUCK YOU2");
System.out.println("PRINTED");
這使我相信,實際上是處理POST請求的方法不運行在所有。
謝謝!
對不起,PUT是一個錯字,它在所有的測試中都進行了校正。這些屏幕是在PUT發佈POST時採用的,我將其更改爲運行測試並忘記將其更改回來。那麼你是說我的代碼沒有運行createDomain方法? – jtafurth