Как связать опубликованные данные как x-www-form-urlencoded, когда они поступают в формате строки запроса? - PullRequest
0 голосов
/ 09 января 2019

У меня есть контроллер ASP.NET Core, который отвечает на запросы POST и принимает данные как application / x-www-form-urlencoded

[HttpPost]
[Consumes("application/x-www-form-urlencoded")]
public async Task<IActionResult> RegisterPayment([FromForm]PaymentDetails data)
{
//registerpayment
}

Используя Почтальон, когда я отправляю x-www-form-urlencoded с этим телом:

orderid:2552
amount:100

это работает, и параметр данных правильно связан.

Однако, если я отправлю его, используя формат строки запроса, как это

orderid=2552&amount=100

Не привязывается, все поля данных равны нулю.

Я ожидаю, что данные будут связаны правильно, даже если используется формат строки запроса, который в конце концов кодируется в urlencoded.

1 Ответ

0 голосов
/ 09 января 2019

В отличие от запросов GET, запросы POST не должны содержать строки запроса. Обычно в строку запроса помещаются все параметры для GET и все параметры в теле для POST.

Вполне вероятно, что выбранная вами структура игнорирует строки запросов для запросов POST.

Для более глубокого обсуждения, предлагаем вам проверить это и это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...