2014-12-19 4 views
0

И выкладывают несколько параметров к WebAPI с помощью FiddlerWebAPI размещения несколько параметров

вызова в моем WebAPI является

[HttpPost] 
    public object Post(string portfolioAPIKey, DateTime? lastCreativeUTC) 
    { 
      ...... 
    } 

В моей webapiconfig

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

В стельке я называю api http://xxxy.com/api/controller/Post использовать следующее содержание

User-Agent: Fiddler 
    Host: xx.com 
    Content-Type: application/json 

При попытке доступа к нему стельку, передавая следующий JSON в теле запроса

 {"portfolioAPIKey":"6B026A0F-F270-4DBF-B84F-CE41F30099A6","lastCreativeUTC":"2014-12-19T12:17:17.8672363Z"} 

Я получаю 500 Внутренняя ошибка сервера. Любые идеи почему?

ответ

0

Создать класс MyDto со следующей подписью:

public class MyDto { 
    public string PortfolioAPIKey {get;set;} 
    public DateTime? LastCreativeUTC {get;set;} 
} 

Modifiy ваш метод Post подписи:

[HttpPost] 
public object Post(MyDto dto) 
{ 
     ...... 
} 

Обновление:

Вы не должны вызывать /Post, но вы должны сделать POST запрос в fiddler до http://xxxy.com/api/<controller>, тогда как <controller> - это имя o f ваш контроллер без контроллера слова. Так что если ваш контроллер MyController, правильный URL-адрес: http://xxxy.com/api/my

+0

Я просто попробовал это, и он все еще дает мне внутреннюю ошибку 500. – ninjaplayer

+0

Вы отлаживали ее и следили за исключениями? –

+1

Btw вы не должны называть '' '/ Post''', но вы должны сделать POST в скрипачке на' '' http://xxxy.com/api/ '' 'while' '' '' 'это имя вашего контроллера без контроллера слова. Поэтому, если ваш контроллер является '' 'MyController'', правильным URL-адресом является http://xxxy.com/api/my –

Смежные вопросы