0

为登录验证创建了简单的 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 (带 http:\)

当我尝试在 Fiddler2 的 Post 方法下解析上述 URL 时,我收到 Bad Request HTTP400 错误。

谁能帮助我的代码有什么问题。

感谢和问候,

维杰

4

2 回答 2

1

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

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

于 2012-06-13T13:43:18.497 回答
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"
于 2012-06-14T15:37:47.837 回答