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被禁止的主要内容,如果未能解决你的问题,请参考以下文章