四.二、控制台
一、控制台(控制台问题,保证控制台不自动退出就行)
解决方案
static void Main(string[] args) { Console.WriteLine("确定三个项目都已经启动"); Console.Read(); Console.WriteLine("按任意键开始运行"); Task.Run(async () => { // discover endpoints from metadata var client = new HttpClient(); var disco = await client.GetDiscoveryDocumentAsync("http://localhost:5000"); if (disco.IsError) { Console.WriteLine(disco.Error); return; } }); Console.ReadLine(); Console.ReadKey(false);//因为控制台会关闭,设置不关闭 }
二、查看调试的
换种方式执行
static void Main(string[] args) { Console.WriteLine("确定三个项目都已经启动"); Console.Read(); Console.WriteLine("按任意键开始运行"); // discover endpoints from metadata var client = new HttpClient(); var disco = client.GetDiscoveryDocumentAsync("http://localhost:5000").ConfigureAwait(false).GetAwaiter().GetResult(); if (disco.IsError) { Console.WriteLine(disco.Error); return; } Console.ReadKey(false);//因为控制台会关闭,设置不关闭 }
继续获取token请求api
static void Main(string[] args) { Console.WriteLine("确定三个项目都已经启动"); Console.Read(); Console.WriteLine("按任意键开始运行"); // discover endpoints from metadata var client = new HttpClient(); var disco = client.GetDiscoveryDocumentAsync("http://localhost:5000").ConfigureAwait(false).GetAwaiter().GetResult(); if (disco.IsError) { Console.WriteLine(disco.Error); return; } // request token var tokenResponse = client.RequestClientCredentialsTokenAsync(new ClientCredentialsTokenRequest { Address = disco.TokenEndpoint, ClientId = "socialnetwork", ClientSecret = "secret", Scope = "socialnetwork" }).ConfigureAwait(false).GetAwaiter().GetResult(); // call api client.SetBearerToken(tokenResponse.AccessToken); var response = client.GetAsync("http://localhost:5001/identity").ConfigureAwait(false).GetAwaiter().GetResult(); if (!response.IsSuccessStatusCode) { Console.WriteLine(response.StatusCode); } else { var content = response.Content.ReadAsStringAsync().ConfigureAwait(false).GetAwaiter().GetResult(); Console.WriteLine(JArray.Parse(content)); } Console.ReadKey(false);//因为控制台会关闭,设置不关闭 }
说明和使用场景(场景为-某个App获取数据比如软件Aajax 请求后台数据,它是直接后台请求(应用程序A的用户名和密码获取token)才可以拿到应用程序A的数据)
客户端==应用程序的身份标识-》是否可以访问
点到为止