我在互联网上根本找不到任何信息。假设我有一个功能
@RequestMapping(value = "/whoami", method = RequestMethod.GET)
public String index(@RequestParam String name) {
return "You are " + name;
}
任务是制作 RequestMethod.POST。会有什么区别?据我了解,GET 比较地址,如果找到 / whoami,则执行此功能。
但是从下面的例子来看,我的理解是不正确的,我在网上找到了代码
@RequestMapping(value = "/ex/foos", method = RequestMethod.GET)
@ResponseBody
public String getFoosBySimplePath() {
return "Get some Foos";
}
Чтобы проверить это сопоставление с помощью простой команды curl , запустите:
curl -i http://localhost:8080/ex/foos
Вот простой пример, похожий на предыдущий, но на этот раз сопоставленный с запросом HTTP POST:
@RequestMapping(value = "/ex/hi", method = POST)
@ResponseBody
public String postFoos() {
return "Post some hi";
}
Чтобы проверить POST с помощью команды curl :
curl -i -X POST http://localhost:8080/ex/hi
我启动服务器 - 我在终端 gradlew bootRun 中写入。只需按照上面的链接。并且 GET 正常打开,但 POST 没有。请帮我弄清楚
有点不对劲。http 客户端(可以是浏览器,也可以是命令行实用程序,也可以是
curl
您编写的程序)在发送 http 请求时始终指定 http 方法和路径。方法(以及路径)是必需的参数。GET
并且POST
是 if 和others方法的示例。当服务器收到请求时,它会处理它,即 在给定输入参数的情况下生成响应。在 spring 中,您可以为不同的 http 方法设置不同的处理程序。
method
注解中的参数@RequestMapping
指定http方法。那些。spring 会寻找参数给定的路径value
和参数给定的 http 方法method
匹配的控制器方法。它将通过将请求中的输入参数(如果有)传递给它来调用它。它对您不起作用,很可能是因为简单地单击链接,或者当您只是在浏览器行中输入地址时,请求了 GET。要执行 POST,您需要使用 curl,正如我们在问题中所写的那样,或者使用像postman这样的浏览器插件
代码本身正在运行: