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

时间:2015-06-05 01:14:14

标签: c# asp.net asp.net-web-api2

我有一个使用访问令牌/承载身份验证在测试中运行良好的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。我确实有基本地址,因为如果我取消了authorize属性,我可以恢复数据。

生产中访问令牌的请求有所不同,但我不知道要改变什么。

1 个答案:

答案 0 :(得分:0)

嗯,答案最终分为两部分:

1)Web主机问题。他们结束了腐败。

2)在他们解决问题之后我仍然收到了404(未找到)......所以我不得不在PostAsync中取出“/”。所以新行看起来像这样:

var loginResponse = await client.PostAsync("Token", loginContent);  

它使用“/”在本地调试中工作,但是生产方不满意。

我现在正在工作。 :)