#c# #post #asp.net-web-api #get
#c# #Публикация #asp.net-web-api #получить
Вопрос:
В настоящее время у меня возникают проблемы с получением обоих запросов для совместной работы.
Когда я использую [FromUri]
, я не могу отфильтровать запрос POST в fiddler, но я могу вызвать запрос GET в любом браузере.
Но когда я использую [FromBody]
, я не могу запросить метод GET, но я могу отфильтровать запрос POST в fiddler.
(например, GET request —> localhost/api /test?name=bbcm)
(например, запрос POST: [request header]
—> User-Agent: Fiddler Тип содержимого: application / json; Хост: localhost: 45361 Длина содержимого: 16 Авторизация: Базовая #####= [request Body]
—> {» имя»:»bbcm»})
[Authorize]
[HttpGet]
[HttpPost]
public HttpResponseMessage post([FromUri] Query query)
{
// do something
var data = Data.ToList();
if (!data.Any())
{
var message = string.Format("No data found");
return Request.CreateErrorResponse(HttpStatusCode.NotFound, message);
}
return Request.CreateResponse(HttpStatusCode.OK, data);
}
}
Я неправильно вызываю запрос или мне нужно изменить его в своем коде, чтобы заставить это работать.
Пожалуйста, дайте совет. Большое спасибо
Ответ №1:
Просто создайте один метод POST и один метод GET и частный метод, который вызывается из них обоих. Это позволяет корректно использовать входные параметры для желаемых методов.
Вы все равно можете получить доступ к параметрам GET в контексте метода POST через объект запроса, если вам действительно нужно.