Отправьте 2 или более необработанных почтовых запроса параметров тела с почтальоном - PullRequest
0 голосов
/ 31 мая 2018

У меня есть метод ASP.NET Core 2.0 API:

[HttpPost("api/days")]
GetDays([FromBody] DateTime startTime, [FromBody]DateTime endTime)
{

}

И я пытался отправить запрос Post с почтальоном, но есть проблема, параметры всегда имеют значения по умолчанию.

Вот мой запрос Post выглядит так:

enter image description here

Результат: не обработан;Оба параметра в методе API получают значения по умолчанию.

Если я изменю свои параметры API на:

[HttpPost("api/days")]
GetDays([FromBody] Inputparam param)
{

}

public class Inputparam
{
    public DateTime startTime { get; set; }
    public DateTime endTime { get; set; }
}

Это отлично работает!

Но я хочу отправлять параметры напрямую, а не внутри объекта-оболочки.

Итак, я вернулся с первым методом API, а затем попытался:

enter image description here

Результат: не работает;Оба параметра в методе API получают значения по умолчанию.

И этот:

enter image description here

Результат: не сработал идеально;Просто первый параметр (startTime) устанавливает его, а второй параметр все еще имеет значение по умолчанию.

И этот:

enter image description here

Результат: нетРаботал;Оба параметра в методе API получают значения по умолчанию.

Я также попробовал [FromForm] вместо [FromBody] в API, ничего не изменилось.

Если я не использую [FromBody] в API и отправляю запрос через x-www-form-urlencoded, который работалв совершенстве.

Но мне нужно отправить необработанное тело с JSon.

Как я мог отправить 2 разных параметра как необработанное тело json?

Есть идеи?Где проблема?

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

[FromUri] может выполнять работу. Для справки Документация Microsoft

public class DateTimes
{
public datetime startdate { get; set; } 
public datetime enddate { get; set; }
}

GetDays([FromBody] DateTimes _date)
{
  //Controller action
}

URI:

api/values/?startdate=2018-06-01&endate=2018-07-01
0 голосов
/ 31 мая 2018

Я обнаружил, что только один [FromBody] разрешен в API, и это имеет смысл.Поэтому, вероятно, ответ таков: невозможно иметь 2 или более параметров с атрибутом [FromBody].

...