web api在移动到生产环境后获得访问令牌时出现错误请求
本文关键字:访问令牌 请求 错误 api 移动 生产环境 web | 更新日期: 2023-09-27 17:53:49
我有一个web api,在使用访问令牌/承载身份验证的测试中工作得很好。我使用HttpClient验证并发出请求。容易。
这是基本的web客户端设置。基址是一个常量,我在迁移到生产环境时更改它。
public static HttpClient GetClient()
{
HttpClient Client = new HttpClient();
Client.BaseAddress = new Uri(Ics2Constants.ICS2APIBaseAddress);
Client.DefaultRequestHeaders.Accept.Clear();
Client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
return Client;
}
我构建令牌请求登录信息如下:
var values = new Dictionary<string, string>();
values.Add("grant_type", "password");
values.Add("username", "niceUser");
values.Add("password", "NiCePaSsWord");
var loginContent = new FormUrlEncodedContent(values);
然后我请求访问令牌:
var loginResponse = await client.PostAsync("/Token", loginContent);
在测试模式下,完美。我可以获得我的访问令牌,在后续请求中传递它。一切都好。
当我转向生产时。我在请求访问令牌时收到一个错误的请求400。我确实有正确的基址因为如果我去掉授权属性,我可以取回数据
在生产环境中,访问令牌的请求有些不同,但是我不知道要改变什么。
最后的答案是两部分:
1)网络主机问题。他们那边有腐败。
2)在他们解决了他们的问题后,我仍然收到404(未找到)…所以我不得不拿出"/"在我的PostAsync。所以新行看起来像这样:
var loginResponse = await client.PostAsync("Token", loginContent);
它可以在本地端调试时使用"/",但生产端并不满意。
我现在起来工作了。:)