|
分類:[C#]
開発環境:Visual Studio Community 2022 / Windows10
使用言語:C# フォームアプリ
はじめまして、こんにちはlatitudeといいます。
プログラムの内容は、
1.WebClient()を使って
2.JSON形式でデータをWebサーバーにGETで投げ
3.結果をJSON形式で受け取る
というもので下記コードで実際に動作しています。
しかし「WebClientは旧形式」と注意がでるのでHttpClientに変更したいです。
これをどう書き換えたら良いのか。
もとのコードの1行の情報量が私には多くて理解できずにいます。
(シンプルなHttpClientの基本的な使い方は理解できたのですが…)
助言いただけると助かります。
よろしくお願いします。
------------------------------------------------------------------------------------
//ソースコード
System.Collections.Generic.Dictionary<string, string> GetToken(System.IO.FileInfo prvKEY, string svACCOUNT, string cID, string cSECRET)
{
using (var rsa = System.Security.Cryptography.RSA.Create())
{
rsa.ImportFromPem(System.IO.File.ReadAllText(prvKEY.FullName));
var descriptor = new Microsoft.IdentityModel.Tokens.SecurityTokenDescriptor
{
Issuer = cID,
Claims = new System.Collections.Generic.Dictionary<string, object>() { ["sub"] = svACCOUNT},
SigningCredentials = new Microsoft.IdentityModel.Tokens.SigningCredentials(new Microsoft.IdentityModel.Tokens.RsaSecurityKey(rsa), "RS256"),
IssuedAt = System.DateTime.UtcNow,
Expires = System.DateTime.UtcNow.AddMinutes(60),
};
var handler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler();
var pv = new System.Collections.Specialized.NameValueCollection()
{
["assertion"] = handler.WriteToken(handler.CreateJwtSecurityToken(descriptor)),
["cID"] = cID,
["cSECRET"] = cSECRET,
};
//★↓ここの部分を HttpClientを使用したコードに変えたいです
using (var wc = new System.Net.WebClient())
{
var resText = System.Text.Encoding.ASCII.GetString(wc.UploadValues(@"https://xxxxx.xxx/oauth2", pv));
return System.Text.Json.JsonSerializer.Deserialize<System.Collections.Generic.Dictionary<string, string>>(resText);
}
}
}
-----------------------------------------------------------------
|