Restful WCF服务POST方法在fiddler2中返回HTTP400错误

时间:2012-06-13 12:59:50

标签: wcf post fiddler wcf-rest

为登录验证创建了简单的Restful服务。以下是我的界面和类定义。

接口IDemo:

public interface IDemo
{
    [OperationContract]
    [WebInvoke(RequestFormat = WebMessageFormat.Json,
               ResponseFormat = WebMessageFormat.Json,
               BodyStyle = WebMessageBodyStyle.Bare,
               UriTemplate = "/ValidateUser?Username={UserName}&Password={Password}",
               Method = "POST")]
    string  ValidateUser(string Username, string Password);
}

班级演示:

public class Demo:IDemo
{
    public string ValidateUser(string Username, string Password)
    {
        Users objUser = new Users();
        objUser.UserID = Username;
        objUser.Password = Password;
        string Msg = LoginDataService.ValidateUser(Username, Password);
        return Msg;
    }
}

localhost:49922 / Demo.svc / ValidateUser?Username = demo& Password = demo(with http:\)

当我尝试在Fiddler2中的Post方法下解析上面的URL时,我收到错误请求HTTP400错误。

任何人都可以帮我解决我的代码中的错误。

谢谢&的问候,

维杰

2 个答案:

答案 0 :(得分:1)

您的URI模板看起来就像是在URL中发送参数。但是当你使用POST时,参数会在http体中发送。

请注意,您不应该在网址中发送用户名和密码,因为它可以记录。

答案 1 :(得分:0)

对于上述REST方法,来自Fiddler的POST需要如下所示:

POST http://localhost/Sample/Sample.svc/ValidateUser?Username=demo&Password=demo HTTP/1.1
User-Agent: Fiddler
Content-Type: application/json
Host: rajeshwin7
Content-Length: 0

这样做我得到200 OK HTTP状态,如下所示:

HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 44
Content-Type: application/json; charset=utf-8
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Thu, 14 Jun 2012 15:35:28 GMT

"Server returns username demo with password demo"