【问题标题】:Authorization Header httpclient post Exception Base64授权标头 httpclient 发布异常 Base64
【发布时间】:2015-01-20 23:57:23
【问题描述】:

我正在尝试在现有 API 上发出一些发布请求。

我尝试使用 Chrome 上的 Postman 插件来使用该 API,它运行良好。

现在我必须在 c# 中从我的 windows phone 应用程序拨打这些电话。

如您所见,它有效。

现在这是我最初尝试在 C# 中使用 HttpClient 做的事情:

(我当然在Ctor中实例化了_httpClient和BaseAdress)

        this._httpClient.DefaultRequestHeaders.Accept.Clear();
        var plainTextBytes = System.Text.Encoding.UTF8.GetBytes("client_id:client_secret");
        var encodedAuth = System.Convert.ToBase64String(plainTextBytes);
        this._httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(encodedAuth);
        var formContent = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair<string, string>("grant_type", "client_credentials") 
        });
        var res = await _httpClient.PostAsync("/oauth/token", formContent);

它不起作用,我得到了一个 FormatException。

然后我浏览了互联网并找到了一些答案,人们说我应该使用常规标题并手动添加它,所以这就是我所做的。

        this._httpClient.DefaultRequestHeaders.Accept.Clear();
        this._httpClient.DefaultRequestHeaders.Add("Authorization", "Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=");
        var formContent = new FormUrlEncodedContent(new[]
        {
            new KeyValuePair<string, string>("grant_type", "client_credentials") 
        });
        var res = await _httpClient.PostAsync("/oauth/token", formContent);

我遇到了同样的异常。

标头 Authorization 实际上是 client_id:client_secret 以 Base64 编码,这是该 API 的要求。

所以如果有人能提供一些帮助那就太好了:)

感谢您的阅读和帮助。 纪尧姆。

【问题讨论】:

    标签: c# post header base64 httpclient


    【解决方案1】:

    我终于设法找到了解决方案,但我不确定。

    我添加替换:

    this._httpClient.DefaultRequestHeaders.Add("Authorization", "Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=");
    

    this._httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", "Y2xpZW50X2lkOmNsaWVudF9zZWNyZXQ=");
    

    感谢安东尼奥Here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 2016-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多