我试着创建一个小的API来做测试,我的Java代码似乎还可以,使用Postman时,当我想做一个获取我的产品列表对我来说是很好的,另一方面,当我想做一个POST时,我有一个400 Bad的请求。
下面是我的代码:
// Produits
@GetMapping(value = "/Produits")
public List<Product> listeProduits() {
return productDao.findAll();
}
// Récupère un produit par son ID
@GetMapping(value = "/Produits/{id}")
public Product afficherUnProduit(@PathVariable int id) {
return productDao.findById (id);
}
@PostMapping(value = "Produits/")
public void ajouterProduit(@RequestBody @Validated Product product, final HttpServletRequest request, Error filterError) {
productDao.save(product);
}
在Postman中,我的正文中填充了content-type: application / json of。
这个问题从何而来?
谢谢
发布于 2020-08-06 21:15:25
我试图重现收到400个错误请求,但我失败了。
根据你的代码,我可以访问(你可以试试这个)
localhost:8080/Produits/
但
localhost:8080/Produits
返回404未找到。
也许你可以添加更多的信息,这可能会有帮助。谢谢。
发布于 2020-08-06 21:17:09
400是一个糟糕的请求。也许你做了错误的POST请求而不是GET。因为只有"ajouterProduit“方法才有验证。
如果你在Postman http://localhost:8080/Produits/中设置了"Produits/“,也要检查你的网址。
如果你有Linux或Mac,你可以通过curl检查你的服务: curl http://localhost:8080/Produits/它会帮助你理解-你做错了邮递员的请求,或者服务有一些不同的url或者别的什么。
发布于 2020-08-06 21:38:18
和更多代码:
@Override
public List<Product> findAll () {
return products;
}
@Override
public Product findById (int id) {
for (Product product : products) {
if (product.getId () == id) {
return product;
}
}
return null;
}
@Override
public Product save (Product product) {
products.add(product);
return product;
}
和邮递员屏幕:
https://stackoverflow.com/questions/63283894
复制相似问题