使用 api 密钥使用 Web API 时,出现以下错误 - 远程服务器返回错误:(403) Forbidden

Posted

技术标签:

【中文标题】使用 api 密钥使用 Web API 时,出现以下错误 - 远程服务器返回错误:(403) Forbidden【英文标题】:While consuming web API with api key, it gives following error - The remote server returned an error: (403) Forbidden 【发布时间】:2019-05-15 10:23:11 【问题描述】:

使用 api 密钥使用 Web API 时,我收到此错误

远程服务器返回错误:(403) Forbidden。

这是我的代码:

private void Getdata()

    var request = System.Net.WebRequest.Create("my api url");
    request.Method = "GET";
    request.Headers.Add("Authorization", "x-api-key" "mykeyvalue");
    request.ContentType = "application/json";

    try
    
        using (var response = request.GetResponse())
        
            using (var stream = response.GetResponseStream())
            
                var reader = new StreamReader(stream, System.Text.Encoding.UTF8);
                txtresult.Text = reader.ToString();
            
        
    
    catch (System.Net.WebException e)
    
        txtresult.Text = e.Message;
    

请帮我解决这个问题

【问题讨论】:

这是服务器问题,很可能是您的授权。我们帮不了你。如错误所述,服务器禁止访问(因此403 Forbidden)。 感谢@NikxDa 提供信息。请让我知道我的代码实现是正确的还是缺少什​​么? 你确定标题是正确的吗?因为"x-api-key" "mykeyvalue" 生成x-api-keymykeyvalue 谢谢@mjcs。如何在 header 中添加 API 密钥授权? @Abhijeet 您将不得不检查 API 服务器的文档,但我的猜测是它类似于 request.Headers.Add("x-api-key", "mykeyvalue"); 【参考方案1】:

您需要将添加标题更改为:

request.Headers.Add("x-api-key", "mykeyvalue");

因为x-api-key是本例中用来做API key授权的header的名字。

【讨论】:

以上是关于使用 api 密钥使用 Web API 时,出现以下错误 - 远程服务器返回错误:(403) Forbidden的主要内容,如果未能解决你的问题,请参考以下文章

仅当提供 Web API 密钥名称时才能指定 Web API 密钥

Web API 创建 API 密钥

限制为Android时,YouTube API密钥会出现500错误

.NET Core Web API 密钥

谷歌地图API密钥以编程方式

通过 SSL 调用 Web Api 时出现 403 禁止错误