Gravatar json个人资料请求403禁止

时间:2015-02-14 21:49:05

标签: c# json http-status-code-403 gravatar

我目前正在使用gravatar api,编写一个C#应用程序。

首先,我试图获得我的gravatar图片。它奏效了。

之后,我试图获取个人资料QR码。它奏效了。

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

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

每次尝试时,都会收到错误403。 但是当我在我的网络浏览器中复制粘贴网址时,或者如果我做了一个wget,它可以正常工作,返回预期的结果。

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

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

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

1 个答案:

答案 0 :(得分:2)

在这种情况下,它不喜欢您没有传递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之类的东西,以便您可以尝试重现浏览器的行为。