Gravatar JSON档案请求403禁止访问。

3

我目前正在使用C#编写应用程序测试Gravatar API。

首先,我尝试获取我的Gravatar图片。这一步成功了。

接着,我尝试获取个人资料二维码。这一步也成功了。

现在,我想要以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())
{
    // ...

有人知道我做错了什么吗?这是关于我的it技术方面的问题。

1个回答

3
在这种情况下,它不喜欢你没有传递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 中。 - rocky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接