【问题标题】:RestSharp posting Client Secret to ApiRestSharp 将 Client Secret 发布到 Api
【发布时间】:2018-05-29 00:48:20
【问题描述】:

我正在替换 RestSharper 中的 WebClient 来调用 Rest 客户端。 下面是来自 WebClient 的工作代码,但相同的代码在 RestClient 中不起作用

网络客户端:

   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 错误。 提前致谢。

【问题讨论】:

    标签: restsharp


    【解决方案1】:

    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);
    

    【讨论】:

      猜你喜欢
      • 2021-10-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 1970-01-01
      • 2012-03-03
      • 2021-03-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多