Rest API 响应 403 禁止从应用程序,如果从邮递员调用,工作正常



我正在尝试发布到使用OAuth 1.0进行身份验证的Rest API。API 提供商为我提供了令牌和机密以及使用者密钥,使用它们我可以成功创建与PostMan一起使用的 OAuth 标头

但问题是当我尝试使用相同的标题和正文时HttpClient它会向我抛出403 Forbidden

我已确保标题或正文或 URL 中没有差异

似乎邮递员所做的一些额外/更少的东西无法在C#中重新创建

private static async Task<string> SendRequest(string fullUrl, string oAuthHeader)
        {
            var json = GetJsonPayload();
            var sc = new StringContent(json, Encoding.UTF8, "application/json");
            sc.Headers.Add("ContentType", "application/json");
            using (var http = new HttpClient())
            {
                http.DefaultRequestHeaders.Add("Authorization", oAuthHeader);
                var httpResp = await http.PostAsync(fullUrl, sc);
                httpResp.EnsureSuccessStatusCode();
                var respBody = await httpResp.Content.ReadAsStringAsync();
                return respBody;
            }
        }

在这里,我的 OAuth 字符串如下所示——

OAuth realm="REALM", oauth_consumer_key="CONSUMERKEY", oauth_nonce="NFcdqA", oauth_signature_method="HMAC-SHA1", oauth_signature="GENERATEDSIGNATURE", oauth_timestamp="1555457636", oauth_token="TOKEN", oauth_version="1.0"

我观察到在 Postman 中,如果在授权选项卡中我将类型选择为无身份验证,并使用给定的 OAuth 字符串将手动标头设置为授权 Postman 也会抛出403,但选择授权类型以OAuth 1.0工作,我似乎找不到为什么会这样以及如何在 C# 中设置 Type

任何帮助/指示将不胜感激。

在 Postman 中,在"发送"按钮下,单击"代码"按钮 - 这有每种语言的代码生成器 - 选择 C# 并尝试,如果没有生成 curl 并验证您拥有每个部分。

相关内容

最新更新