使用Github api违反协议

本文关键字:协议 api Github 使用 | 更新日期: 2023-09-27 17:53:33

我正在从Github获取应用程序的数据。前两个OAuth步骤还可以,但在第三个步骤中我得到了以下错误:"服务器提交了协议冲突。Section=ResponseStatusLine ERROR"这是我的代码:

protected String WebRequest(string url)
    {
        url += (String.IsNullOrEmpty(new Uri(url).Query) ? "?" : "&") + "access_token=" + _accessToken;
        HttpWebRequest webRequest = System.Net.WebRequest.Create(url) as HttpWebRequest;
        webRequest.Method = "GET";
        webRequest.ServicePoint.Expect100Continue = false;
        try
        {
            using (StreamReader responseReader = new StreamReader(webRequest.GetResponse().GetResponseStream()))
                return responseReader.ReadToEnd();
        }
        catch
        {
            return String.Empty;
        }
    }

程序在使用StreamReader对象后出现异常,返回错误。如果我按照这些指示操作,服务器违反了协议。Section=ResponseStatusLine ERROR,错误变为"403禁止"。当Github使用api V2时,与现在不同,这段代码没有问题。所以,这不可能是.NET的限制,而是与Github服务器有关的限制。有什么建议吗?

使用Github api违反协议

您需要这样设置UserAgent:

webRequest.UserAgent = "YourAppName";

否则会给出The server committed a protocol violation. Section=ResponseStatusLine错误。