2015-01-01 6 views
0

Я использую RestSharp для использования моего WebApi. Вот соответствующий код:Запрос WebApi POST обрабатывается GET

var insertRequest = new RestRequest("MappedSystem", Method.POST); 
insertRequest.AddBody(new MappedSystemCreateModel 
       { 
        MappedSystemDetails = new MappedSystemCreateModel.Details 
        { 
         SystemName = "TestName", 
         SystemVersion = "TV" 
        } 
       }); 
var response = RestClient.Execute(insertRequest); 

Но когда я отлаживать WebAPI она попадает Get() метод:

public class MappedSystemController : ApiController 
{ 
    private readonly IMappedSystemService _mappedSystemService; 

    public MappedSystemController(IMappedSystemService mappedSystemService) 
    { 
     _mappedSystemService = mappedSystemService; 
    } 

    public MappedSystemViewModel[] Get() 
    { 
=>  return _mappedSystemService.Get(); 
    } 

    public MappedSystemViewModel Get(Guid id) 
    { 
     return _mappedSystemService.Get(id); 
    } 

    [HttpPost] 
    public MappedSystemViewModel Post([FromBody]MappedSystemCreateModel model) 
    { 
     return _mappedSystemService.Post(model); 
    } 
} 

Я думаю, что должно быть что-то не так с моей routeConfig, но я не на данный момент знаю:

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

ответ

0

Была проверка перехватчика почтового маршрута, чтобы проверить, правильно ли я добавил конечный '/'. Поскольку я не ответил на него 301 и перенаправлен. Как-то/где-то в RedirectPermanently() глагол терялся. Ответ состоял в том, чтобы изначально сделать запрос с завершающим «/». Но, конечно, это проливает свет на ошибку, обнаруженную в перенаправлении.

Кроме того, мне нужен этот следующий код по просьбе или тело не десериализации:

insertRequest.RequestFormat = DataFormat.Json; 
Смежные вопросы