415 - неподдерживаемый тип носителя весной - PullRequest
0 голосов
/ 15 ноября 2018

Я получаю неподдерживаемую ошибку mediatype. Класс моего профиля пользователя выглядит следующим образом

Class UserProfile{
private int age;
private String name,
private String currenecy;
}

И это метод в контроллере

@RequestMapping(value = "/Create", method=RequestMethod.POST,consumes=MediaType.APPLICATION_JSON_VALUE, produces=MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<UserProfileResponse> createUserProfile(@RequestBody UserProfile userProfile)
{
UserProfileResponse userProfileResponse = new UserProfileResponse();
int id = createUserProfileData(userProfile)
userProfileResponse.setId(id);
return new ResponseEntity<UserProfileResponse>(userProfileResponse,HTTPStatus.OK);
}

Я пытаюсь отправить запрос через POSTMAN, но получаю Ошибка 415 - неподдерживаемый тип носителя Мой запрос в POstman выглядит так

Content-Type:application/json
Accept:application/json 
Method is : POST
{
"age":28,
"name":"Sam",
"currency": "INR"
}

enter image description here

Подскажите, что мне не хватает?

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

Я мог видеть ответ, возвращающийся с вашим кодом. Я намеренно возвращаю тот же объект только для проверки возможности подключения. Вот мой код:

@RequestMapping(value = "/create", method= RequestMethod.POST,consumes= MediaType.APPLICATION_JSON_VALUE, produces=MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<UserProfile> createUserProfile(@RequestBody UserProfile userProfile)
{
    System.out.println("Got request");
    return new ResponseEntity<>(userProfile, HttpStatus.OK);
}

Использованные методы получения и установки в профиле пользователя

public class UserProfile {
    private int age;
    private String name;
    private String currenecy;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCurrenecy() {
        return currenecy;
    }

    public void setCurrenecy(String currenecy) {
        this.currenecy = currenecy;
    }
}
0 голосов
/ 17 ноября 2018

Наконец-то, потратив некоторое время .. Я понял, почему это не работает. В моем весеннем конфигурационном файле на основе Java я пропустил "@EnableWebMvc". После добавления моя проблема была решена.

@Configuration
**@EnableWebMvc**   // This annotation was missing.
@ComponentScan(basePackages="com.hemant.*")
public class TestConfiguration  {}
0 голосов
/ 15 ноября 2018

Не забудьте выбрать формат "JSON", заполненный произвольной строкой JSON в текстовой области.

Также используйте одновременно Accept или Content-type.

Если это не такне работает, вы можете проверить, как показано ниже, удалив расход и добавив заголовки вручную.

@RequestMapping(value = "/Create", method=RequestMethod.POST, headers = "Accept=application/json",produces=MediaType.APPLICATION_JSON_VALUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...