Gravatar json配置文件请求403被禁止

Posted

技术标签:

【中文标题】Gravatar json配置文件请求403被禁止【英文标题】:Gravatar json profile request 403 forbidden 【发布时间】:2015-04-15 17:45:22 【问题描述】:

我目前正在通过编写 C# 应用程序来使用 gravatar api。

首先,我尝试获取我的头像。它奏效了。

之后,我尝试获取个人资料二维码。它奏效了。

现在,我想以 json 格式检索我的个人资料信息。我按照网站给出的指示,写了这个:

using (var web = new HttpClient())

    using (var response = await web.GetAsync("http://www.gravatar.com/205e460b479e2e5b48aec07710c08d50"))
    
        // ...

每次我尝试这样做时,都会收到错误 403。 但是,当我将 url 复制粘贴到我的网络浏览器中,或者如果我执行 wget 时,它可以正常工作并返回预期结果。

我也试过这个,但我也得到了错误:

var request = WebRequest.Create("http://www.gravatar.com/205e460b479e2e5b48aec07710c08d50.json");
using (var response = request.GetResponse())

    // ...

有人知道我的做法有什么问题吗?

【问题讨论】:

【参考方案1】:

在这种情况下,它不喜欢您不传递 User-Agent HTTP 标头(而且我认为您不能将其作为 WebRequest,因此我们将其转换为 HttpWebRequest):

var request = (HttpWebRequest)WebRequest.Create("http://www.gravatar.com/205e460b479e2e5b48aec07710c08d50.json");
        request.UserAgent = "Whatever user agent you'd like to use here...";
using (var response = request.GetResponse())

// ...

编辑:将来使用 Fiddler 之类的工具可能会对您有所帮助,以便您可以尝试重现浏览器的行为。

【讨论】:

您不必将其转换为HttpWebRequest,您可以手动将其添加到WebRequest.Headers

以上是关于Gravatar json配置文件请求403被禁止的主要内容,如果未能解决你的问题,请参考以下文章

Python请求响应403被禁止

HTTP 错误 403.9 - 禁止访问:连接的用户过多

当我发送 POST 请求时被禁止 403

axios 403 在 OPTIONS 请求中被禁止

403错误总结

Tomcat CORS:预检成功,但实际请求失败,403 被禁止