Как сделать тело запроса необязательным - PullRequest
0 голосов
/ 22 апреля 2020

У меня есть следующая функция POST:

public async Task<BaseResponse> Post([FromBody] BodyParams content)
{
    var option = content.TopOnly;
    return await RunHttpMethodAsync(option, _worker.Lookup);
}

Вот класс BodyParams:

public class BodyParams
{
    public bool TopOnly { get; set; }
}

Это работает как задумано. Однако я бы хотел сделать BodyParams content необязательным и установить TopOnly на true, если не указано иное. Я пытался:

public class BodyParams
{
    public bool TopOnly { get; set; } = true;
}

И затем не предоставляя тело, но я получаю следующее возвращение:

{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.13",
    "title": "Unsupported Media Type",
    "status": 415,
    "traceId": "00-305034a9723b9a4f94e0601c6ecc3587-b67fe89deb8e644f-00"
}

Я ставлю точку останова на var option, и я надеваю даже не достигли этого.

Мой вопрос: как я могу сделать тело запроса необязательным для POST?

1 Ответ

1 голос
/ 22 апреля 2020

415 Неподдерживаемый тип носителя - означает, что объект запроса имеет тип носителя, который не поддерживается сервером или ресурсом.

Если вы используете Postman, установите его и повторите попытку enter image description here

Также, чтобы упростить его, вы можете использовать

public async Task<BaseResponse> Post([FromBody] TopOnly? topOnly = true)
...