问题描述
我已经安装了wordpress和JWT Auth,我想验证用户名和密码。
这是在邮递员中运行的API链接:
https://xxxx/wp-json/jwt-auth/v1/token
我只能在键值为“ username”和“ password”的“正文”“ Form-Data”字段中传递用户名和密码,因为参数不适用于JWTAuth。
如何使用C#将这些值作为“正文”“表单数据”值传递?
这是我的代码:
string JWTAPI = "https://xxxx/wp-json/jwt-auth/v1/token";
var client = new HttpClient();
var uri = JWTAPI;
var jsonContent = "{ \"username\": \"test\",\"password\": \"test\"}";
string json = JsonConvert.SerializeObject(jsonContent);
StringContent content = new StringContent(json,Encoding.UTF8,"application/json");
var response_status = await client.PostAsync(uri,content);
var response_result = await response_status.Content.ReadAsstringAsync();
解决方法
TokenRequest Token;
public async Task TakeToken()
{
client = new HttpClient();
var values = new Dictionary<string,string>
{
{ "username","root" },{ "password","1111" }
};
var content = new FormUrlEncodedContent(values);
var response = await client.PostAsync($"{BaseUrl}/wp-json/jwt-auth/v1/token",content);
var responseString = await response.Content.ReadAsStringAsync();
Token = Newtonsoft.Json.JsonConvert.DeserializeObject<TokenRequest>(responseString);
client.DefaultRequestHeaders.Add("Authorization","Bearer " + Token.token);
}
public class TokenRequest
{
public string token;
public string user_email;
public string user_nicename;
public string user_display_name;
}
,
没关系。我知道了!
只需删除:
string json = JsonConvert.SerializeObject(jsonContent);