Создание простого почтового запроса веб-API

Я действительно борется с созданием базового запроса на отправку в URL-адресе для поддержки учебника по веб-апи.

Я хочу сделать что-то подобное в браузере: http://localhost: 59445/api/group/post/? Newvalue = test и получить сообщение для регистрации. Однако, похоже, я не могу правильно сформировать запрос. Каков правильный способ сделать это?

Ошибка, которую я получаю:

{"Сообщение": "Запрос недействителен.", "MessageDetail": "Словарь параметров содержит нулевую запись для параметра" id "не-nullable типа" System.Int32 "для метода" System.String Get (Int32) 'in' twin_groupapi.Controllers.GroupController '. Необязательный параметр должен быть ссылочным типом, нулевым типом или быть объявлен как необязательный параметр. "}

моя модель:

    public class Group  
    {
     public Int32 GroupID { get; set; }
     public Int32 SchoolID { get; set; }
     public string GroupName { get; set; }
    }

маршрутизации:

public static void Register(HttpConfiguration config)
    {
        // Web API configuration and services

        GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{action}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }

контроллер:

    //[Route("api/Group/Post")]
    [HttpPost]
    public void Post([FromUri] string NewValue)
    {

        string newstring = NewValue;

    }
+1
источник поделиться
2 ответа

Нажатие URL-адреса в вашем браузере будет выполнять только запрос GET.

Вы также можете:

  • создайте простую <form> с его методом, установленным в POST и введите формы для ввода значений, которые вы хотите отправить (например, NewValue), OR
  • напишите JavaScript, чтобы создать запрос POST AJAX, используя вашу любимую фреймворк, ИЛИ
  • Используйте такой инструмент, как почтальон, чтобы настроить запрос POST, вызвать его и просмотреть результаты.
+3
источник

Сообщение об ошибке, скорее всего, связано с вашим методом Get().

Поскольку @StriplingWarrior сказал, что вы делаете запрос GET, когда метод помечен как [HttpPost]. Это можно увидеть, если вы используете инструменты разработчика в своем браузере (F12 в большинстве современных браузеров для их активации).

Посмотрите, как вручную запускать HTTP-запросы POST с помощью Firefox или Chrome?

Примечание: соглашение С# для имен параметров - camelCase с первой буквой, которая является общей, а не капиталом, например string newValue.

0
источник

Посмотрите другие вопросы по меткам или Задайте вопрос