【发布时间】:2019-02-27 08:31:40
【问题描述】:
我正在尝试制作一个小型应用程序以将 GitHub API 的结果获取到文本文件。首先我试图将数据获取到控制台。我尝试了很多方法以及引用了许多文档,但我找不到方法来解决这个问题。
https://api.github.com/users/user?client_id=8763c42f48201b31115f&client_secret=4708b9aea8e35878b9748a016198b81de24352a4 行政规则禁止的请求。请确保您的请求具有 User-Agent 标头 (http://developer.github.com/v3/#user-agent-required)。检查https://developer.github.com 是否有其他可能的原因
这是我使用的示例代码。谁能帮我解决关于User-Agent header的问题
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
GetGameData().Wait();
}
public static async Task<string> GetGameData()
{
var url = "https://api.github.com/users/user?client_id=8763c42f48201b31115f&client_secret=4708b9aea8e35878b9748a016198b81de24352a4";
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(url);
Console.WriteLine(client.BaseAddress);
HttpResponseMessage response = await client.GetAsync(url);
string strResult = await response.Content.ReadAsStringAsync();
Console.WriteLine(strResult);
return strResult;
}
}
}
}
【问题讨论】:
-
client.DefaultRequestHeaders.Add("User-Agent", @"Mozilla/5.0 (Windows NT 10; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0"); -
我将它添加到代码中,但仍然出现相同的错误
-
尝试添加:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;作为GetGameData()方法的第一行。 -
我再次发现同样的错误。
-
在您呈现的代码的当前状态下 - 如果那是您的实际代码 - 这可能是您可以尝试的全部。您需要添加
HttpClientHandler和其他缺失部分。此外,这并不是传递 Auth Token 的真正方式。在 SO 中搜索有关如何在OAuth2场景中使用 HttpClient 类进行令牌身份验证的示例。你会发现很多。
标签: c# github-api