Username
我创建了一个 API 和一个登录表单,我需要使用和属性授权对我的 API 的访问Password
,这些属性是从登录表单中的两个文本框中获得的。但是,来自 API 的响应始终为空。这是我的原始代码:
public async Task<AuthenticatedUser> Authenticate(string username, string password)
{
var data = new List<KeyValuePair<string, string>>()
{
new KeyValuePair<string, string>("grant_type", "password"),
new KeyValuePair<string, string>("username", username), //I made sure that both username and password
new KeyValuePair<string, string>("password", password) //are passed correctly to the Authenticate() void
};
var content = new FormUrlEncodedContent(data); //var data is not null but "content" is
using (HttpResponseMessage response = await apiClient.PostAsync("/token", content))
{
if (response.IsSuccessStatusCode)
{
var result = await response.Content.ReadAsAsync<AuthenticatedUser>(); //response is always "null"
return result;
}
else
{
throw new Exception(response.ReasonPhrase);
}
}
}
我尝试用sList<>
数组替换KeyValuePair<>
,我也尝试使用Dictionary<string, string>
. 这些选项都不起作用。在网上进行了一些研究后,我看到了一种替代方法,StringContent
或者MediaFolder
但我不知道如何使它与它们一起使用。我也在我的域中使用 https,所以那里似乎没有错误。现在,它看起来好像FormUrlEncodedContent
没有正确编码。
此外,来自 Swagger 和 Postman 的请求会返回值。