从开放的 HTTP 流中读取数据

2024-05-08

我正在尝试使用 .NET WebRequest/WebResponse 类来访问 Twitter 流 API 此处"http://stream.twitter.com/spritzer.json".

我需要能够打开连接并从打开的连接中增量读取数据。

目前,当我打电话时WebRequest.GetResponse方法,它会阻塞,直到下载整个响应。我知道有一个BeginGetResponse方法,但这只会在后台线程上执行相同的操作。我需要在下载仍在进行时访问响应流。对于我来说,这些课程似乎不可能做到这一点。

Twitter 文档中有对此的具体评论:

“请注意,某些 HTTP 客户端库仅在服务器关闭连接后返回响应正文。这些客户端将无法访问 Streaming API。您必须使用将增量返回响应数据的 HTTP 客户端。最强大的 HTTP客户端库将提供此功能。例如,Apache HttpClient 将处理此用例。”

他们指向 Apache HttpClient,但这并没有多大帮助,因为我需要使用 .NET。

任何想法这是否可能WebRequest/WebResponse,或者我必须去参加较低级别的网络课程吗?也许还有其他库可以让我做到这一点?

谢谢 艾伦


我最终使用了 TcpClient,效果很好。尽管如此,我仍然有兴趣知道这是否可以通过 WebRequest/WebResponse 实现。这是我的代码,以防有人感兴趣:

using (TcpClient client = new TcpClient())
{

    string requestString = "GET /spritzer.json HTTP/1.1\r\n";
    requestString += "Authorization: " + token + "\r\n";
    requestString += "Host: stream.twitter.com\r\n";
    requestString += "Connection: keep-alive\r\n";
    requestString += "\r\n";

    client.Connect("stream.twitter.com", 80);

    using (NetworkStream stream = client.GetStream())
    {
        // Send the request.
        StreamWriter writer = new StreamWriter(stream);
        writer.Write(requestString);
        writer.Flush();

        // Process the response.
        StreamReader rdr = new StreamReader(stream);

        while (!rdr.EndOfStream)
        {
            Console.WriteLine(rdr.ReadLine());
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从开放的 HTTP 流中读取数据 的相关文章

随机推荐

  • Mathjax Latex 符号正方形和三角形大小

    我有一个使用 MathJax 来显示一些乳胶的应用程序 它显示大多数内容都很好 但是当我想用命令显示正方形时 square 我正在尝试这个乳胶代码作为测试 triangle Box square bigtriangleup blacksqu
  • AVFoundation (AVPlayer) 支持的格式?没有 .vob 或 .mpg 容器?

    在 Mac 应用程序中使用 AVPlayer 可以全屏播放文件夹中的随机视频 但当我尝试播放 vob 文件或 mpg 文件时 我只会看到黑屏 黑屏的持续时间与视频持续时间一样长 AVFoundation 不支持从这些容器播放吗 我认为既然它
  • 如何在 HERE API 中获取速度限制

    我正在开发一个网络应用程序 我需要知道特定道路的速度限制 对 API 的调用看起来是这样的 get http cre api here com 2 calculateroute json waypoint0 41 69758 87 7839
  • PHP memcache - 检查池中是否有可用的服务器?

    我有以下代码 cluster local array host gt 192 168 1 1 port gt 11211 weight gt 50 cluster local2 array host gt 192 168 1 2 port
  • 在 Excel 2010 中添加基本功能区的 VBA 代码?

    我已经使用产品在 C addin express 中为 Excel 编写功能区 但我需要知道如何使用 vba 生成功能区 有人能为我提供一些代码来为此在工具栏中插入一个额外的功能区吗 我所说的功能区是指上面写着 公式 数据 评论 等的地方
  • Kestrel + IIS 反向代理请求中止未触发

    我们有一个 ASP NET Core 2 x 应用程序 它实现了自定义中间件 充当另一个 基于 Java 的 服务器 应用程序前面的代理 此应用程序 中间件的客户端通常会在服务器请求完成之前频繁中止 取消其请求 我们已将此应用程序部署到 I
  • 能否从 Vista Shell 获取 48x48 或 64x64 图标?

    如果 Vista Shell 中存在 48x48 或 64x64 图标 如何使用 SHGetFileInfo 获取在 TImage 中显示图标的句柄 我想从图像列表中选择一个代表文件夹路径的图标 并在 Timage 中显示 48x48 或
  • 位置:固定在 iPad 和 iPhone 上不起作用

    I have been struggling with fixed positioning in iPad for a while I know iScroll http cubiq org iscroll and it does not
  • 如何在 Angular 6 中包含外部 html 文件和 js 文件?

    我想在我的 Angular 6 项目中包含一些 html 文件并使用一些外部 js 文件中的函数 如何在 Angular 6 中包含外部 html 文件和 js 文件 您可以将这些文件放在src assets文件夹并指定路径angular
  • 如何在 Eclipse 中的独立(Swing)应用程序中配置 hibernate?

    我通常在Web应用程序中使用hibernate和spring 所以我使用DI和maven进行配置 现在我想在不使用maven或spring的桌面 swing应用程序中使用hibernate 我想知道以下内容 我需要什么罐子 如何配置休眠 以
  • Django - 使用 get_FOO_display 进行聚合

    考虑以下 status queryset values status annotate count Count status where status字段是一个CharField with choices 这将产生一个字典列表statusD
  • ModuleNotFoundError:没有名为“模型”的模块

    我有一个非常简单的 django 应用程序 我试图将其部署到 heroku 但它不断崩溃 在我的本地机器上一切正常 但在 Heroku 上却不行 这是我收到的错误 切到相关部分 File app hello admin py line 4
  • React Native 循环这个

    当我把onPress在地图循环中 它不起作用 如何修复它 var PageOne React createClass handlePress this props navigator push id 2 render return
  • 将值数组附加到 React JS 中某个状态的当前数组

    我的状态值为 this state emp id 1 name A id 2 name B id 3 name B 我怎样才能添加一个像这样的数组var arr id 4 name D 给国家emp而不删除数组的当前值 我只想将新的值数组附
  • TryXXX 类似带有“out”参数的方法与返回可为空值类型的方法?

    我经常在 C 中看到这样的方法 进行可能会或可能不会给出结果的计算 bool TrySomething SomeType inputData out SomeOtherType result 为什么人们不使用这样的东西呢 Nullable
  • HashMap 无法转换为 java.lang.string

    我正在尝试从列表视图中获取值 列表视图由hashmap类型的数组列表设置 因此 如果我尝试获取字符串中的值 则会出现错误HashMap cannot be cast to java lang string 详细信息1 java packag
  • 不使用修剪方法从字符串中删除空格?

    给定的字符串是 家 甜蜜的家 如果用户输入模式为 0 那么 o p 应该是 home sweet home 如果用户输入模式为 1 那么 o p 应该是 Do this https stackoverflow com questions 5
  • Android Gradle 构建缓慢

    我试图找出为什么我们的 Gradle 构建如此缓慢 目前 每次您在不进行任何更改的情况下进行构建时 构建时间约为 45 秒 这是一个单模块项目 我已经打开了分析 大部分时间都花在了 app dexDebug 我们使用 Gradle 2 8
  • 如何在Python中连接两个整数?

    如何在Python中连接两个整数 例如 给定10 and 20 我想要一个返回值1020 将两者都转换为字符串 连接字符串 然后将结果转换回整数 z int str x str y
  • 从开放的 HTTP 流中读取数据

    我正在尝试使用 NET WebRequest WebResponse 类来访问 Twitter 流 API 此处 http stream twitter com spritzer json 我需要能够打开连接并从打开的连接中增量读取数据 目