Gravatar json 个人资料请求 403 禁止
Gravatar json profile request 403 forbidden
我目前正在通过编写 C# 应用程序来使用 gravatar api。
首先,我尝试获取我的头像。成功了。
之后,我尝试获取个人资料二维码。成功了。
现在,我想在 json 中检索我的个人资料信息。我按照网站给出的指示,写了这个:
using (var web = new HttpClient())
{
using (var response = await web.GetAsync("http://www.gravatar.com/205e460b479e2e5b48aec07710c08d50"))
{
// ...
每次尝试时,我都会收到错误 403。
但是当我在我的网络浏览器中复制粘贴 url 时,或者如果我执行 wget,它工作正常 returns 预期结果。
我也试过这个,但我也收到错误:
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 api。
首先,我尝试获取我的头像。成功了。
之后,我尝试获取个人资料二维码。成功了。
现在,我想在 json 中检索我的个人资料信息。我按照网站给出的指示,写了这个:
using (var web = new HttpClient())
{
using (var response = await web.GetAsync("http://www.gravatar.com/205e460b479e2e5b48aec07710c08d50"))
{
// ...
每次尝试时,我都会收到错误 403。 但是当我在我的网络浏览器中复制粘贴 url 时,或者如果我执行 wget,它工作正常 returns 预期结果。
我也试过这个,但我也收到错误:
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 之类的工具,以便您可以尝试重现浏览器的行为。