Spring Boot中如何调用带@Pathvariable注解的Post方法?

问题描述 投票:0回答:2

如何从浏览器中使用 @PathVariable 调用 Post 方法? 搜索了所有问题,这个问题没有直接答案。不喜欢使用其他注释。

@RestController
@RequestMapping("/api")
public class PlugController {

    @PostMapping(value = "/command/{cmd}")
    public String command(@PathVariable(value = "cmd") String command) {
        return command;
    }

}

从浏览器调用如下:

http://localhost:8080/api/command/on

错误:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.


There was an unexpected error (type=Method Not Allowed, status=405).
java spring-boot spring-mvc
2个回答
0
投票

您可以发布您的

***Application
代码或任何日志吗?我使用您的代码并且它有效。

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}
@RestController
@RequestMapping("/api")
public class TestController {

    @PostMapping(value = "/command/{cmd}")
    public String command(@PathVariable(value = "cmd") String command) {
        return command;
    }
}

enter image description here

---更新---

如果您想通过浏览器请求,请使用

@GetMapping
代替
PostMapping

如果你想通过浏览器请求POST,你需要使用javascript创建一个表单提交事件,url如下:

javascript 是让浏览器知道这是一个 javascript 的要求。

javascript:(function(){document.body.innerHTML='<form method="POST" action="http://localhost:8080/api/command/aaa"></form>';document.forms[0].submit()})();

注意,javascript:(function()....

之间没有空格

0
投票

尝试在邮递员中测试此发布请求。由于一些限制,我们的浏览器不支持发布请求。

© www.soinside.com 2019 - 2024. All rights reserved.