Here's the the whole code for getting token. I wanna translate this to Httpclient. hope that someone can help me. I want to switch from httpwebrequest to httpclient Thank you so much for helping me out.
public static async Task<TokenInfo> GetToken(string userName, string password)
{
string text = "https://api.site.io/v4/sessions.json?app=100005a&t=1569053071";
string postDataStr = string.Concat(new string[]
{
"{\"password\": \"", password,
"\", \"login_id\": \"", userName,"\"}"
});
var token_info = JObject.Parse(await Post(text, postDataStr));
var token = token_info["token"].ToString();
string user = token_info["user"]["name"].ToString();
string country = token_info["user"]["country"].ToString();
return new TokenInfo()
{
Token = token,
Name = user,
Country = country
};
}
private static HttpWebRequest httpWebRequest;
public static async Task<string> Post(string Url, string postDataStr)
{
var uri = new Uri(Url);
httpWebRequest = (HttpWebRequest)WebRequest.Create(uri);
httpWebRequest.Method = "POST";
httpWebRequest.ContentType = "text/plain";
httpWebRequest.KeepAlive = false;
httpWebRequest.ContentLength = (long)Encoding.UTF8.GetByteCount(postDataStr);
using (var writer = new StreamWriter(httpWebRequest.GetRequestStream(), Encoding.GetEncoding("gb2312")))
{
await writer.WriteAsync(postDataStr);
}
using (var response = (await httpWebRequest.GetResponseAsync()).GetResponseStream())
{
using (var reader = new StreamReader(response, Encoding.GetEncoding("utf-8")))
{
var result = await reader.ReadToEndAsync();
Console.WriteLine(result);
return result;
}
}
}