[英]PostMapping Service Rest with Spring boot error Request method 'POST' not supported
我沒有確定問題所在。
控制器
@RestController("/api")
public class CoordenadaController {
@Autowired private RepositorioCoordenada repositorioCoordenada;
@PostMapping("/salvar")
public void save(String nome, int coordenadaX, int coordenadaY) {
this.repositorioCoordenada.save(new Coordenada(nome, coordenadaX, coordenadaY));
System.out.println("Salvou.....");
}
}
郵差客戶端
url localhost:8080/api/salvar?nome=Igreja&coordenadaX=10&coordenadaY=20
記錄錯誤 PostMan 客戶端
{
"timestamp": 1493257315171,
"status": 405,
"error": "Method Not Allowed",
"exception": "org.springframework.web.HttpRequestMethodNotSupportedException",
"message": "Request method 'POST' not supported",
"path": "/api/salvar"
}
日志錯誤彈簧
Request method 'POST' not supported
2017-04-26 22:41:55.168 WARN 8388 --- [nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved exception caused by Handler execution: org.springframework.web.HttpRequestMethodNotSupportedException: Request method 'POST' not supported
如果您在 @RestController 中刪除 / api,則使用 @Post 注釋的方法有效
localhost:8080/salvar?nome=Igreja&coordenadaX=10&coordenadaY=20
您需要在@RestController 注釋后在@RequestMapping 上設置uri 路徑,例如:
@RestController
@RequestMapping("/yourpath")
public class YourClass {
...
...
}
因此,在您的代碼中,您在 @RestController 中設置了此路徑,這就是郵遞員請求在沒有 /api 路徑的“/salvar”上工作的原因,因為對於 spring,此路徑未聲明。
您將 POST 與 GET 混合使用。 如果您想進行 POST,請執行以下操作:
@RestController("/api")
public class CoordenadaController {
@Autowired private RepositorioCoordenada repositorioCoordenada;
@PostMapping("/salvar")
public void save(@RequestBody Payload payload) {
this.repositorioCoordenada.save(new Coordenada(payload.nome, payload.coordenadaX, payload.coordenadaY));
System.out.println("Salvou.....");
}
}
public class Payload{
String nome, int coordenadaX, int coordenadaY
//getters & setters
}
然后相應地使用郵遞員:使用 post 方法,創建一個 json 負載並將其添加到 Body 部分
json 有效載荷:
{
"nome": "bla bla",
"coordenadaX": "1",
"coordenadaY": "2"
}
您可以查看 spring 教程以獲取更多信息: https : //spring.io/guides/gs/rest-service/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.