0

RestSharp を使用して Web API からデータを取得しようとする電話アプリがあります。

        private void ButtonTestTap(object sender, EventArgs e)
    {
        var client = new RestClient
        {
            CookieContainer = new CookieContainer(),
            BaseUrl = "http://localhost:21688/api/game",
            Authenticator = new HttpBasicAuthenticator("muhcow", "123456")
        };

        RestRequest request = new RestRequest(Method.GET);
        request.AddParameter("id", 5);

        //request.AddBody(5);
        client.GetAsync<LoginResult>(request, (response, ds) =>
        {
            System.Diagnostics.Debug.WriteLine(response.StatusDescription);
            System.Diagnostics.Debug.WriteLine(response.Data);
            System.Diagnostics.Debug.WriteLine(response.Content);
        });
    }

そして、API サーバーがこの GET リクエストを受信したときに Authenticator = new HttpBasicAuthenticator("muhcow", "123456") を読み取りたいので、ユーザーを確認できますが、データの読み取り方法がわかりません。

私はこれを持っています

public class GameController : ApiController
    {
        // GET /api/game/5
    public string Get(int id)
    {
        var sdf2 = ControllerContext.Request.Headers.Authorization.Parameter; 

        //return LoginManager.VerifyLogin(loginData);
        return "Some data";
    }

しかし、sdf2 には奇妙な値 "bXVoY293OjEyMzQ1Ng==" があります。

4

3 に答える 3

1
System.Text.Encoding.UTF8.GetString (Convert.FromBase64String (this.ControllerContext 

.Request .Headers.Authorization.Parameter ))

結果は「muhcow」、「123456」

于 2012-11-20T09:54:24.733 に答える
1

そのヘッダーは base64 でエンコードされています。これに Convert.FromBase64String() を適用すると、内容が表示されます。

于 2012-04-28T17:47:35.200 に答える
1

Authorization.Parameter は base64 でエンコードされています。ここでデコード方法の例を見ることができますhttp://arcanecode.com/2007/03/21/encoding-strings-to-base64-in-c/

于 2012-04-28T17:49:48.567 に答える