【问题标题】:Protocol violation using Github api使用 Github api 违反协议
【发布时间】:2014-03-26 00:55:43
【问题描述】:

我正在从 Github 为我的应用程序获取数据。 前 2 个 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 对象后进入异常,返回错误。 如果我按照这些说明The server committed a protocol violation. Section=ResponseStatusLine ERROR 操作,错误会变成“403 禁止”。 Github 使用 api V2 的时候,和现在不同,这段代码没有问题。 所以,不能是 .NET 的限制,而是与 Github 服务器相关的东西。 有什么建议吗?

【问题讨论】:

  • 您找到解决方案了吗?我遇到了同样的问题,但我也有一些混淆的响应(不同的线程,请求 1 也有来自请求 2 的响应)...
  • 这里也出现同样的错误。呃 :(

标签: c# .net api github


【解决方案1】:

你需要像这样设置 UserAgent:

webRequest.UserAgent = "YourAppName";

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

【讨论】:

  • 非常感谢...一直在寻找在整个网络上解决这个问题。
  • 我一直在寻找这个几个小时,我认为这是一些保活问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
  • 2016-03-11
  • 2016-01-29
  • 2014-04-06
  • 1970-01-01
相关资源
最近更新 更多