使用Api Id和Api密钥进行RestSharp身份验证

时间:2014-04-01 16:32:06

标签: c# api rest restsharp

我必须调用一个安静的API,但我唯一的详细信息是API ID和API密钥。

我正在尝试使用像这样的Restsharp库代码。

  var client = new RestClient("https://xxxxxxx");
  client.Authenticator = new HttpBasicAuthenticator("xxxxx", "yyyyyy");

我收到了401授权错误。

请你指点我正确的方向。

感谢。

2 个答案:

答案 0 :(得分:2)

这是我提出的解决方案。

这将返回客户端对象

private RestClient InitializeAndGetClient()
        {
            var cookieJar = new CookieContainer();
            var client = new RestClient("https://xxxxxxx")
            {
                Authenticator = new HttpBasicAuthenticator("xxIDxx", "xxKeyxx"),
                CookieContainer = cookieJar
            };

            return client;
        }

你可以使用像

这样的方法
            var client = InitializeAndGetClient();
            var request = new RestRequest("report/transaction", Method.GET);

            request.AddParameter("option", "value");



            //Run once to get cookie.
            var response = client.Execute(request);

            //Run second time to get actual data
            response = client.Execute(request);

希望这会对你有所帮助。

普拉卡什。

答案 1 :(得分:0)

我知道这很老,但这只是我所需要的:

        var cookieJar = new CookieContainer();
        var client = new RestClient("https://xxxxxxx")
        {
            Authenticator = new HttpBasicAuthenticator("[username]", "[password]"),
            CookieContainer = cookieJar
        };

然后,在创建请求对象之后,我必须添加API_KEY标头:

            var request = new RestRequest("[api]/[method]"); // this will be unique to what you are connecting to
            request.AddHeader("API_KEY", "[THIS IS THE API KEY]");