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

首先,我试图得到我的gravatar图片。有效。

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

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

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

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

我也试过这个,但我也收到错误:
var request = WebRequest.Create("http://www.gravatar.com/205e460b479e2e5b48aec07710c08d50.json");
using (var response = request.GetResponse())
{
    // ...

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

最佳答案

在这种情况下,它不喜欢您没有传递 User-Agent HTTP header (我认为您不能作为 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 之类的工具可能会帮助您,以便您可以尝试重现浏览器的行为。

关于c# - Gravatar json 个人资料请求 403 禁止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28520689/

10-12 22:20