c# - 我不能在我的 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 库的此方法相同的响应。有人能帮忙吗?
解决方案
当然,试试这个
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 反序列化器responseContent
或NewtonSoft
任何 JSON 库。
推荐阅读
- javascript - 带有 nodejs 的 Mongoosdb
- python - 从 JSON 中过滤空值
- c++ - 如何从 C++ 中两次继承的基类中调用隐藏方法?
- python - 如何提高文本文档的二值化(填充字母缺失像素,减少噪音等)
- java - 如何在不删除 Actuator 的情况下在 Spring Boot 中开发自己的 /env 端点?
- docker - 图层是否引用了最终图像中包含的另一个图像?
- javascript - 针对设备 Alpha 旋转旋转对象
- python-3.x - 如何使用 Slack Block Kit、Bolt 和 Python 创建消息?
- python - 库中的 Python 日志记录
- r - 函数运算符 %<>% 有什么作用?