为登录验证创建了简单的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错误。
任何人都可以帮我解决我的代码中的错误。
谢谢&的问候,
维杰
答案 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"