首页 > 解决方案 > 我不能在我的 WixSharp 安装程序中使用 RestSharp,是否可以使用 HttpClient 或 WebClient 完成此操作?

问题描述

private async Task<AuthenticationToken> GetToken()
    {

        string username = loginDialog.username;
        string password = loginDialog.password;
        string requestString = $"Service/Login";
        RestRequest request = new RestRequest(requestString, Method.POST);
        request.AddParameter("username", username);
        request.AddParameter("password", password);
        IRestResponse<AuthenticationToken> response = await _client.ExecuteAsync<AuthenticationToken>(request);
        return response.Data;
    }

我在我的解决方案中的几个项目中使用 RestSharp。我不能在安装程序中使用它,WixSharp 不能很好地与 RestSharp 配合使用。我需要使用 WebClient 或 HttpClient 来获得与使用 RestSharp 库的此方法相同的响应。有人能帮忙吗?

标签: c#asp.netrestwebclientrestsharp

解决方案


当然,试试这个

var httpClient = new HttpClient();
var headers = httpClient.DefaultRequestHeaders;
headers.Add("Content-Tpye", "application/form-url-encoded");
string requestParams = string.Format("grant_type=password&username={0}&password={1}", username, password);
HttpContent content = new StringContent(requestParams);
var response = httpClient.PostAsync(requestString, content);
var responseContent = await response.Result.Content.ReadAsStringAsync();

            

然后,您可以使用 JSON 反序列化器responseContentNewtonSoft任何 JSON 库。


推荐阅读