Почему метод post не работает, когда метод Get работает в RestController? - PullRequest
0 голосов
/ 25 февраля 2019

Мой метод GET работает нормально с Json, но я всегда получаю сообщение об ошибке при использовании метода post.Я использовал коды, которые приведены ниже.

RestController

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

    private static final String[] province = {
            "Aragon",
            "Catalonia"
    };

    private static final String[][] district =  {
            {"Barbastro","Fraga","Jaca"},
            {"Granollers","Vich","Barcelona"}
    };

    @GetMapping("/ajax/district") //it working!
    public List<String> getDistrict(@RequestBody Province province){
        for(int i=0; i<this.province.length; i++){
            if(this.province[i].equals(province.getProvince())){
                return Arrays.asList(district[i]);
            }
        }
        return null;
    }

    @PostMapping("/ajax/district") //it's not working!
    public List<String> getDistrictPost(@RequestBody Province province){
        for(int i=0; i<this.province.length; i++){
            if(this.province[i].equals(province.getProvince())){
                return Arrays.asList(district[i]);
            }
        }
        return null;
    }
}

Провинция

class Province{

    private String province;

    public String getProvince() {
        return province;
    }

    public void setProvince(String province) {
        this.province = province;
    }
}

Я использую Postmanпроверить метод RestController.

In GET: отправив эту команду, я получаю следующий вывод.

{
    "province":"Catalonia"
}

GET:

[
    "Granollers",
    "Vich",
    "Barcelona"
]

В методе POST: отправив эту команду, я получаю следующий вывод.

{
    "province":"Catalonia"
}

Вывод POST:

{
"timestamp": "2019-02-25T08:52:10.850+0000",
"status": 404,
"error": "Not Found",
"message": "No message available",
"path": "/api/ajax/district"
}

AsВ результате, когда мы проверяем коды, метод GET работает, а метод POST не работает.Почему не работает метод post, когда работает метод Get?Есть ли в коде ошибка, которую я не вижу?Кто-нибудь может помочь?

1 Ответ

0 голосов
/ 25 февраля 2019

Почему вы пытаетесь использовать оба метода (POST, GET) для одной и той же функциональности.использование @RequestBody с методом GET не является хорошей практикой.Вы добавили зависимость и конфигурацию безопасности Spring?

Если да, то добавление имени метода может помочь вам, как показано ниже..antMatchers ( HttpMethod.POST , "/ yourRequestURL"). permitAll ()

...