我正在使用 oAuth 来验证我的应用程序。我设法获得了代码、access_token 和refresh_token。因此下一步将尝试获取有关当前用户的信息。
public async void GetCurrentUser()
{
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", AccessToken);
var response = await client.GetAsync("https://oauth.reddit.com/api/v1/me");
if (response.IsSuccessStatusCode)
{
var json = await response.Content.ReadAsStringAsync();
var obj = Newtonsoft.Json.JsonConvert.DeserializeObject<dynamic>(json);
}
}
}
这就是我用来做到这一点的方法。但是,响应始终是 403(禁止)错误代码。知道可能出什么问题吗? access_token是我发出请求时得到的https://oauth.reddit.com/api/v1/access_token https://oauth.reddit.com/api/v1/access_token
我认为令牌是正确的,因为当我使用 Fiddler 创建相同的请求时它可以工作。
ANSWER:
通过添加自定义用户代理修复它
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, _endpointUri + "me");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", AccessToken);
request.Headers.Add("User-Agent", Uri.EscapeDataString("android:com.arnvanhoutte.redder:v1.2.3 (by /u/nerdiator)"));
var response = await client.SendAsync(request);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)