使用Github API时出现协议违规问题

5

我正在为我的应用程序从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 forbidden"。当 Github 使用 API V2 时,与现在不同,此代码没有问题。因此,这不能是 .NET 的限制,而是与 Github 服务器有关的问题。有什么建议吗?

你找到解决方案了吗?我遇到了同样的问题,但是我也得到了一些混乱的回复(不同的线程,请求1还包含了请求2的响应)... - mnkypete
这里也遇到了同样的错误。唉 :( - Pure.Krome
1个回答

18

您需要像这样设置UserAgent:

webRequest.UserAgent = "YourAppName";

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


1
非常感谢...一直在网上寻找解决这个问题的方法。 - Akanksha Gaur
1
我已经找了好几个小时了,我以为是一些保持连接的问题。谢谢你! - BlackDragonBE

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接