繁体   English   中英

如何在 HttpClient 中使用 request.AddParameter(restsharp)

[英]how to use request.AddParameter(restsharp) in HttpClient

我有这个代码并且工作

string userName = "username";
        string password = "password";
        string clientSecret = "clientSecretCode";
        var client = new RestClient("url");
        var request = new RestRequest(Method.POST);
        request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
        request.AddParameter("undefined",
            $"grant_type=password&username={userName}&password={password}&client_id=mmp-web-api&client_secret={clientSecret}&scope=openid%20mmp-webpanel",
            ParameterType.RequestBody);
        IRestResponse response = client.Execute(request);
        var result = JsonConvert.DeserializeObject<TokenOutputDto>(response.Content);

TokenOutputDto 是:

public class TokenOutputDto
{
    public string access_token { get; set; }
}

我如何将此代码转换为 httpclient(在没有 RestSharp 的情况下运行)

string userName = "username";
            string password = "password";
            string clientSecret = "clientSecretCode";

            HttpClient httpClient = new HttpClient();
            Uri requestUri = new Uri("Your Complete URL");
            httpClient.DefaultRequestHeaders
                .Accept
                .Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));//ACCEPT header

            // Parameter
            var content = new FormUrlEncodedContent(new[]
            {
                new KeyValuePair<string, string>("undefined", $"grant_type=password&username={userName}&password={password}&client_id=mmp-web-api&client_secret={clientSecret}&scope=openid%20mmp-webpanel")
            });

            var response = httpClient.PostAsync(requestUri.ToString(), content).Result;
            var token = response.Content.ReadAsStringAsync().Result;
            var result = JsonConvert.DeserializeObject<TokenOutputDto>(token);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM