RestSharp публикует клиентский секрет в Api - PullRequest
0 голосов
/ 18 мая 2018

Я заменяю WebClient из RestSharper для вызова клиента Rest.Ниже приведен рабочий код из WebClient, но тот же код не работает из RestClient

WebClient:

   using (var client = new WebClient())
            {
                var reqparm =
                    new System.Collections.Specialized.NameValueCollection
                    {
                        {"client_id", _configurationTickle.ClientId},
                        {"client_secret", _configurationTickle.ClientSecret},
                        {"grant_type", "authorization_code"},
                        {"code", authCode},
                        {"redirect_uri", _configurationTickle.CallBackUrl}
                    };

                byte[] responsebytes = client.UploadValues(url, "POST", reqparm);
                string responsebody = Encoding.UTF8.GetString(responsebytes);
            }

RestSharp:

var client1 = new RestClient(_configurationTickle.BaseUrl);
        var request = new RestRequest(_configurationTickle.TokenRequestEndPoint,Method.POST);
        request.AddParameter("client_id", _configurationTickle.ClientId);
        request.AddParameter("client_secret", _configurationTickle.ClientSecret);
        request.AddParameter("grant_type", "authorization_code");
        request.AddParameter("code", authCode);
        request.AddParameter("redirect_uri", _configurationTickle.CallBackUrl);
        IRestResponse response = client1.Execute(request);

Можете ли вы помочь, что случилосьс запросом в RestSharp, я получаю ошибку Invalid request.Заранее спасибо.

1 Ответ

0 голосов
/ 28 мая 2018

urlencoded запрос типа должен быть дан, как показано ниже, и, пожалуйста, сверьтесь с приведенным ниже измененным кодом

 request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
 request.AddParameter("application/x-www-form-urlencoded", "Key1=value1&Key2=value2&....", ParameterType.RequestBody);

Измененный код:

var client1 = new RestClient(_configurationTickle.BaseUrl);
var request = new RestRequest(_configurationTickle.TokenRequestEndPoint,Method.POST);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");


String body="client_id="+_configurationTickle.ClientId+"&client_secret="+_configurationTickle.ClientSecret+"&grant_type=authorization_code&code="+authCode+"&redirect_uri="_configurationTickle.CallBackUrl;

request.AddParameter("application/x-www-form-urlencoded", body, ParameterType.RequestBody);
...