Я пробую webapi, который будет поддерживать как GET, так и POST, но метод POST должен передавать буквенно-цифровой параметр, НО GET должен игнорировать любые параметры.
[HttpPost]
[HttpGet]
[Route("payment")]
public virtual async Task<HttpResponseMessage> PaymentBase([FromBody] string hostOtp)
{
return await ((IApiPaymentController)this).Payment(hostOtp);
}
Я пытался,
PaymentBase([FromBody] string hostOtp)
и PaymentBase([FromBody] string hostOtp="")
PaymentBase(string hostOtp="")
при таком подходе PaymentBase(string hostOtp="")
GET работает нормально, но с POST hostOtp никогда не бывает
Это код почтальона,
var settings = {
"async": true,
"crossDomain": true,
"url": "http://localhost:5094/api/payment/Payment",
"method": "POST",
"headers": {
"securitytoken": "0WnIxDep1knex1P13FmTWFKmIOBhgyc",
"content-type": "application/x-www-form-urlencoded",
"cache-control": "no-cache",
"postman-token": "123d6825-c723-732d-737c-1964dd8f271f"
},
"data": {
"hostOtp": "eqweef"
}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
при стрельбе из почтальона с [FromBody] string hostOtp
ошибкой получения,
"MediaTypeFormatter недоступен длячитать объект типа 'String' из содержимого с типом носителя 'application / octet-stream'. "