web api 转移到生产环境后获取访问令牌时出现错误请求

web api Bad Request when getting access token after moving to production

我有一个网络 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);  

它在带有“/”的本地端调试工作,但生产端不满意。

我现在起床工作了。 :)