是否可以通过 URL 调用 Web API 来获取实时数据?

2024-04-27

假设您有一个 ASP.NET MVC 4 Web API 项目。当您通过 URL 调用其中一个资源时,它会等待获取指定时间段的性能监控数据,然后在完成后以 JSON 形式返回所有数据。但是,在输入 URL 和过程完成之间,是否有一种方法可以动态返回数据,即每秒检索性能数据并将其显示在浏览器中。

问题是这样的: 据我所知以及任何人似乎都知道,通过 URL 调用 API 资源是静态的。这意味着,在资源检索到其所有信息之前,JSON 不会出现,这不是我想要的。我希望能够在 API 资源检索数据时不断更新浏览器中的 JSON。

由于我正在存储库类和控制器类中工作,因此 Javascript 不是一个选项。我尝试过使用 SignalR,但显然这在这种情况下不起作用,特别是因为我无法使用 Javascript。

有没有可能通过 URL 调用 API 来获取实时数据?

例证: 谷歌地图。 通过 URL 调用 Google Maps API 的唯一方法是如果您想要一个“静态”地图,该地图显示特定位置的单个图像。没有任何形式的互动。如果您想要一个动态的“实时”地图,您需要构建一个 Web 应用程序,并在视图页面中使用 Javascript 来使用应用程序中的 API 资源。无法通过 URL 调用它。


无论 MVC 控制器和路由管道如何,您都可以组合一个老式的 ASP.Net IHttpHandler 实现。http://support.microsoft.com/kb/308001 http://support.microsoft.com/kb/308001。然后,您将可以完全访问响应流,并且可以根据需要进行缓冲或不缓冲。您必须考虑是否要占用工作线程那么长时间,并且如果您计划或多或少地连续流式传输,那么您肯定希望在等待存储库的进一步响应时使用 IAsyncHttpHandler。

话虽如此,Web API 也支持异步,但它更复杂一些。如果您计划随时发回数据,那么我强烈建议您再看一下 SignalR,如果您最终计划拥有一些 JavaScript 客户端,它可以开箱即用地完成所有这些操作。这要容易得多。

如果您确实想在 Web API 中编写异步内容,这里有一些资源可以帮助您;

http://blogs.msdn.com/b/henrikn/archive/2012/02/24/async-actions-in-asp-net-web-api.aspx http://blogs.msdn.com/b/henrikn/archive/2012/02/24/async-actions-in-asp-net-web-api.aspx

这个看起来正是您所需要的;http://blogs.msdn.com/b/henrikn/archive/2012/04/23/using-cookies-with-asp-net-web-api.aspx http://blogs.msdn.com/b/henrikn/archive/2012/04/23/using-cookies-with-asp-net-web-api.aspx

不过,为了在示例中使用 PushStreamContent() 类,您不会在 System.Net.Http.dll 中找到该类,您需要从 Web API 堆栈每晚构建中获取该类http://aspnetwebstack.codeplex.com/SourceControl/list/changesets http://aspnetwebstack.codeplex.com/SourceControl/list/changesets

YMMV-祝你好运!

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

是否可以通过 URL 调用 Web API 来获取实时数据? 的相关文章

  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 嵌套接口:将 IDictionary> 转换为 IDictionary>?

    我认为投射一个相当简单IDictionary
  • 使用 WebClient 时出现 System.Net.WebException:无法创建 SSL/TLS 安全通道

    当我执行以下代码时 System Net ServicePointManager ServerCertificateValidationCallback sender certificate chain errors gt return t
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 重载<<的返回值

    include
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 将 List 转换为 JSON

    Hi guys 有人可以帮助我 如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过休息服务获取它 这是我的服务方法 它返回查询结果列表 Override public List
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 迁移到 Qt6/PyQt6:Qt5 中所有已弃用的短格式名称是什么?

    我正在尝试从以下位置迁移代码库PyQt5 to PyQt6 我读过这篇文章 参见https www pythonguis com faq pyqt5 vs pyqt6 https www pythonguis com faq pyqt5 v
  • 一个电子邮件地址中可以有多少个@符号?

    是否有任何规则要求在任何电子邮件 ID 中包含指定数量的 符号 如果我们要使用 PHP 检查电子邮件 ID 是否有效 我就会想到 如果引用多个 被允许 我必须问你为什么需要这些信息 拜托拜托please不要尝试编写正则表达式 函数或其他任何
  • 最好的分布式暴力对抗措施是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 首先 有一点背景知识 众所周知 我正在为 CodeIgniter 实现一个 auth auth 系统 并且到目前为止我正在获胜 可以这么说 但我
  • 请解释为什么以及如何 +new Date();在 IE8 或更低版本中作为 Date.now() 的“解决方法”

    我正在看书 面向 Web 开发人员的专业 JavaScript 给出有关此问题的背景信息 特别是有关引用类型的第 5 章 我想知道为什么以及如何var start new Date 用于获取 now 的当前毫秒表示 作为不支持 ECMASc
  • 从 Google AppEngine 切换到另一台服务器

    目前 我正在 Google AppEngine GAE 上构建我的 Java Web 应用程序 但由于它们有很多限制 我担心我必须从 GAE 切换到运行 Glassfish 或如果需要 我可以设置任何其他服务器 我还计划运行 Oracle
  • 为什么我不能返回通用“T”来满足 Partial

    我用 TypeScript 写了一些代码 type Point x number y number function getThing
  • 所有原始包装类都是不可变对象吗?

    Java 中的所有原始包装类都是不可变对象吗 字符串是不可变的 其他不可变对象是什么 Any type which doesn t give you any means to change the data within it is imm
  • 使用 Bash 比较 PHP 版本号?

    我有这个脚本 应该确保用户当前的 PHP 版本在某个范围内 尽管它应该可以工作 但某个地方有一个错误 使它认为版本超出范围 有人可以看一下并告诉我我能做什么来解决它 function version echo gawk F printf d
  • SVG 元素绕圆旋转

    所以我有一个 SVG 元素 大圆圈 和里面的一组元素 我想围绕这个大圆圈旋转这些元素 代码非常简单 但我已经开始担心如何在正确的路径 大圆圈 上设置这个圆圈 graph skils 正如您在下面的链接中看到的 这个小圆圈在大圆圈上旋转不正确
  • 调试严重的 SIGILL 崩溃:文本段损坏

    我们的系统是基于 PowerPC 的运行 Linux 的嵌入式系统 我们遇到了随机的 SIGILL 崩溃 这种情况在各种应用程序中都会出现 崩溃的根本原因是将要执行的指令归零 这表明内存中的文本段已损坏 由于文本段是以只读方式加载的 因此应
  • openpyxl 图表误差线样式

    我被分配了一项 简单 的任务 即将一系列数据列收集到结果工作簿中 结果工作簿包含分析结果所需的公式和图表 这些数据是由我用 python 编写的图像分析应用程序生成的 作为一系列 Excel 工作簿 现在的问题是 openpyxl 会删除
  • 如何验证当前用户 ASP.net mvc Identity

    当用户访问我的网站时 他们会看到登录页面 一旦他们成功登录 他们就可以注销并且其他用户可以登录 但是 如果用户在登录时单击后退按钮 则会转到登录页面 此时新用户无法再登录 我收到防伪令牌错误 我尝试注销任何进入登录页面的用户 我尝试过不同的
  • 在 CodeIgniter 会话中存储具有相同名称的多个输入

    我已经发布了这个在 CodeIgniter 论坛中 http codeigniter com forums viewthread 155508 并且也耗尽了论坛搜索引擎 所以如果交叉发帖不被允许 我们深表歉意 本质上 我有一个输入 设置为
  • 如何将基于 Qt4.6 Phonon 的媒体应用程序移植到 Qt 5.1?

    我有一个基于 Qt 4 6 的应用程序 它使用 QtWebView 加载带有标签的 HTML 页面 以便在 Windows 平台上播放网络多媒体源 我没有使用默认的 PHONON 播放引擎 而是构建了另一个 PHONON 后端引擎来处理媒体
  • 帮助手册中的锚点不起作用

    我已经仔细检查了所有内容 希望有人能发现我没有看到的愚蠢错误 我正在尝试为我的应用程序构建一个 Apple 帮助部分 它可以正确地转到登录页面 但是没有一个锚点起作用 登陆页面称为index html另一个页面称为test html它位于p
  • 如果相机平移也在 Z 方向,单应性在平面场景的两个图像之间是否成立?

    我正在尝试计算两个图像之间的相对姿势 并且我正在使用单应性来过滤特征匹配 我有一个相当平面的场景 只要两个图像之间的平移仅限于 X 和 Y 轴 opencv 约定 基于单应性的相对姿态估计就可以非常准确地工作 一旦我开始使用另一个相机沿 Z
  • .NET Core:Process.Start() 留下 子进程

    我正在构建一个部署在 CentOS 7 2 上的 ASP Net Core netcore 1 1 应用程序 我有一个通过 System Diagnostics Process 调用外部进程 也是使用 net core 构建的控制台应用程序
  • iOS/MacOS 框架中是否有为 CFBundleShortVersionString 定义的常量

    我知道 CFBundleVersion plist 键有一个常量 定义为kCFBundleVersionKey在 CoreFoundation 的 CFBundle h 标头中 但是 CFBundleShortVersionString 有
  • 可以用Java开发iPhone应用程序吗?

    无意间看到这样的广告 http monotouch net DownloadTrial ref so1 http monotouch net DownloadTrial ref so1 然后我开始怀疑 Java 中是否有类似的东西 据我了解
  • 是否可以通过 URL 调用 Web API 来获取实时数据?

    假设您有一个 ASP NET MVC 4 Web API 项目 当您通过 URL 调用其中一个资源时 它会等待获取指定时间段的性能监控数据 然后在完成后以 JSON 形式返回所有数据 但是 在输入 URL 和过程完成之间 是否有一种方法可以