2013-04-18 3 views
0

У меня есть веб-api для запроса POST от http web client (C#). Я использую консоль REST от chrome для отладки моего веб-api. Когда я передал параметр в querystring, он работает нормально, но когда я передал параметр как Raw Body, он не работал. Я не знаю, чего не хватает.Запрос POST Не работает с полезной нагрузкой Но отлично работает с параметром строки запроса

Ниже приведен мой код.

Контроллер:

[HttpPost] 
     public JsonResult VerifyUserAuth([Bind(Prefix = "t"), Required] string token, 
             [Bind(Prefix = "ApplicationGUID"), Required] string applicationGUID, 
             string userID, 
             string password) 
     { 
      return Json(NotificationsSecurity.VerifyUserAuth(_connectionstring, userID, password), 
         JsonRequestBehavior.AllowGet); 
     } 

Когда я его отладки в VS отладчик и передать параметр как RAW тела он показывает мне пустой. Но когда я передаю строку запроса, я получаю все параметры правильно.

+1

Возможно, будет отправлен код вашего клиента. – Nathan

ответ

0

Web API не использует форматтера по умолчанию при указании нескольких простых типов. Formatter знает, как сопоставить полезную нагрузку тела в экземпляр объекта, представляющий модель. Для простых типов привязывающие объекты в основном используются против аргументов URI и RouteData. Я бы сделал небольшое изменение в вашем действии, чтобы правильно разобрать полезную нагрузку.

public class VerifyUserAuthModel 
{ 
    public string Token { get; set; } 
    public string ApplicationGUID { get; set; } 
    public string UserID { get; set; } 
    public string Password { get; set; } 
} 



public JsonResult VerifyUserAuth(VerifyUserAuthModel model) 
{ 
} 
+0

Спасибо. Это сработало для меня. – GPK

+0

Отлично. Не могли бы вы пометить мое решение как ответ? Спасибо –

+0

я сделал. Я новичок на этом сайте. я проверил флажок «да» в левой части вашего комментария. – GPK