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 に答える