2013-04-18 1 views
0

http 웹 클라이언트 (C#)의 POST 요청에 대해 웹 API가 있습니다. 크롬의 REST 콘솔을 사용하여 웹 API를 디버깅하고 있습니다. querystring에서 매개 변수를 전달하면 잘 작동하지만 매개 변수를 원시 본문으로 전달하면 작동하지 않습니다. 제가 누락 된 부분을 모르겠습니다.POST 요청이 페이로드에서 작동하지 않지만 쿼리 문자열 매개 변수로 올바르게 작동합니다.

아래 코드는 제 코드입니다.

컨트롤러 : 내가 VS 디버거에서 디버깅 및 RAW 몸과 같은 매개 변수를 전달하면

[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); 
     } 

그것은 나를 null을 보여줍니다. 하지만 쿼리 문자열로 전달할 때 모든 매개 변수를 올바르게 수신하고 있습니다.

+1

클라이언트 코드를 게시하면 도움이됩니다. – Nathan

답변

0

웹 API는 여러 개의 단순 유형을 지정할 때 기본적으로 포맷터를 사용하지 않습니다. 포맷터는 본문 페이로드를 모델을 나타내는 객체 인스턴스에 매핑하는 방법을 알고 있습니다. 간단한 유형의 경우 모델 바인더는 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

관련 문제