Mus*_*afa 2 c# asp.net-mvc asp.net-core-webapi
我有一个用于 REST API 的 HttpClient。我从服务器获取访问令牌,但无权使用 REST API。响应是Error: Unauthorized
首先,使用getAccessToken()方法,我获取访问令牌。
public static async Task<string> getAccessToken()\n {\n var client = new HttpClient();\n\n client.DefaultRequestHeaders.Add("Referer", "http://admin.altrabo.com/");\n\n var tokenClient = new TokenClient()\n {\n client_Id= -1,\n username= "admin",\n password= "Main@dm!n",\n grant_Type= "Main@dm!n",\n externalProvider= 1,\n \n };\n\n HttpResponseMessage response = await client.PostAsJsonAsync<TokenClient>("https://api.altrabo.com/api/v1/token", tokenClient);\n var json = JsonSerializer.Deserialize<AccessToken>(response.Content.ReadAsStringAsync().Result);\n return json.access_token;\n }\nRun Code Online (Sandbox Code Playgroud)\n它返回访问令牌。
\n然后,使用该verifyToken()方法验证访问令牌。
public static async Task<string> verifyToken(string access_token)\n{\n var client = new HttpClient();\n client.DefaultRequestHeaders.Add("Authorization", "Bearer " + access_token);\n HttpResponseMessage response = await client.GetAsync("https://api.altrabo.com/api/v1/verifyToken");\n return response.ReasonPhrase; \n}\nRun Code Online (Sandbox Code Playgroud)\n回报OK
但是当我想要访问 API 时,我遇到了Error: Unauthorized.
例如,当我想获取机场列表时:
\npublic static async Task<string> ListAirports()\n{\n var client = new HttpClient();\n return await client.GetStringAsync("https://api.altrabo.com/api/v1/BaseData/GetAirports?pageSize=1000&pageNumber=1");\n}\nRun Code Online (Sandbox Code Playgroud)\nAPI 文档位于\n https://www.getpostman.com/collections/51cd9e7f5f6ebafa8c48\xe2\x80\x8e
\n将令牌添加到获取机场的请求中,其方式与验证令牌时的方式相同。
public static async Task<string> ListAirports(string access_token)
{
var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer " + access_token);
return await client.GetStringAsync("https://api.altrabo.com/api/v1/BaseData/GetAirports?pageSize=1000&pageNumber=1");
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6963 次 |
| 最近记录: |