Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取GithubAPI v3的发布_C#_Unity3d_Github Api - Fatal编程技术网

C# 获取GithubAPI v3的发布

C# 获取GithubAPI v3的发布,c#,unity3d,github-api,C#,Unity3d,Github Api,我正在尝试获取Unity(.NET 3.5)中的公共回购协议版本,但我一直收到403个错误: WebException: The remote server returned an error: (403) Forbidden. System.Net.HttpWebRequest.CheckFinalStatus (System.Net.WebAsyncResult result) System.Net.HttpWebRequest.SetResponseData (System.Net.Web

我正在尝试获取Unity(.NET 3.5)中的公共回购协议版本,但我一直收到403个错误:

WebException: The remote server returned an error: (403) Forbidden.
System.Net.HttpWebRequest.CheckFinalStatus (System.Net.WebAsyncResult result)
System.Net.HttpWebRequest.SetResponseData (System.Net.WebConnectionData data)
这是我的代码:

private string GetReleases(string username, string repoName)
{
    const string GITHUB_API = "https://api.github.com/repos/{0}/{1}/releases";
    WebClient webClient = new WebClient();
    Uri uri = new Uri(string.Format(GITHUB_API, username, repoName));
    string releases = webClient.DownloadString(uri);
    return releases;
}
因为回购协议是公开的,我相信我不需要使用代币,但为了以防万一,我尝试添加一个代币,但仍然收到相同的错误消息

webClient.Headers.Add("Authorization", string.Format("Token {0}", "myToken"));
如果我从浏览器输入该url,它会返回一个包含所有repo版本的json

我尝试获取发布版的方式是否存在模板或错误?

继mason之后,我能够使其正常工作,现在它返回json

private string GetReleases(string username, string repoName)
    {
        const string GITHUB_API = "https://api.github.com/repos/{0}/{1}/releases";
        WebClient webClient = new WebClient();
        // Added user agent
        webClient.Headers.Add("User-Agent", "Unity web player");
        Uri uri = new Uri(string.Format(GITHUB_API, username, repoName));
        string releases = webClient.DownloadString(uri);
        return releases;
    }

你能用浏览器向同一个URL发出请求并成功吗?@mason是的,我试过你的代码。获取了
System.Net.WebException。服务器违反了协议。Section=ResponseStatusLine
。在我搜索该错误后,我发现您需要设置web客户端的用户代理。我做到了,而且成功了。请记住,服务器只处理HTTP请求和响应。他们实际上不知道客户机是浏览器还是程序,因此,如果您像浏览器一样设计请求,他们的服务器将不知道区别。您可以使用类似的工具来检查请求和响应。所有请求都需要用户代理-