如何传递日期时间参数?

2023-11-23

如何将 UTC 日期传递给 Web API?

Passing 2010-01-01工作正常,但是当我传递 UTC 日期时,例如2014-12-31T22:00:00.000Z(带有时间部分),我收到 HTTP 404 响应。所以

http://domain/api/controller/action/2012-12-31T22:00:00.000Z

产生 404 错误响应,而

http://domain/api/controller/action/2012-12-31

工作正常。

然后如何将 UTC 日期传递给 Web API - 或者至少指定日期and time?


问题是双重的:

1. The .在路线中

默认情况下,IIS 将所有带点的 URI 视为静态资源,尝试返回它并完全跳过进一步处理(通过 Web API)。这是在您的 Web.config 部分中配置的system.webServer.handlers:默认处理程序句柄path="*."。您不会在此处找到太多有关奇怪语法的文档path属性(正则表达式会更有意义),但这显然意味着“任何不包含点的内容”(以及下面第 2 点中的任何字符)。因此名称中的“无扩展”ExtensionlessUrlHandler-Integrated-4.0.

在我看来,按照“正确性”的顺序,可以有多种解决方案:

  • 专门为必须允许点的路由添加一个新的处理程序。一定要添加它before默认值。为此,请确保您remove首先添加默认处理程序,然后将其添加回您的处理程序之后。
  • 改变path="*."归因于path="*"。然后它会捕获所有内容。请注意,从那时起,您的 Web api 将不再将带点的来电解释为静态资源!如果您在 Web API 上托管静态资源,则不建议这样做!
  • 将以下内容添加到您的 Web.config 以无条件处理所有请求:<system.webserver>: <modules runAllManagedModulesForAllRequests="true">

2. The :在路线中

更改上述内容后,默认情况下,您会收到以下错误:

从客户端 (:) 检测到潜在危险的 Request.Path 值。

您可以更改 Web.config 中预定义的禁止/无效字符。在下面<system.web>,添加以下内容:<httpRuntime requestPathInvalidCharacters="&lt;,&gt;,%,&amp;,*,\,?" />。我已经删除了:来自无效字符的标准列表。

更简单/更安全的解决方案

虽然这不是您问题的答案,但更安全、更简单的解决方案是更改请求,以便不需要所有这些。这可以通过两种方式完成:

  1. 将日期作为查询字符串参数传递,例如?date=2012-12-31T22:00:00.000Z.
  2. 剥去.000来自每个请求,并对 url 进行编码,因此替换所有:'s with %3A,例如通过使用HttpUtility.UrlEncode().
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何传递日期时间参数? 的相关文章

随机推荐

  • 自定义 Laravel Passport 响应未经身份验证

    目前 我使用 Laravel 中使用护照功能制作的 api 具有登录 注册 更新和删除功能 使用此 api 插入数据和从数据库获取数据一切正常 现在我想知道 当令牌过期时 如何自定义 api 的响应 令牌的过期也正常工作 它会自动显示此消息
  • 如何检查 Android SQLite 数据库中是否存在表?

    我有一个android应用程序 需要检查数据库中是否已有记录 如果没有 则处理一些事情并最终插入它 如果数据确实存在 则只需从数据库中读取数据 我正在使用 SQLiteOpenHelper 的子类来创建并获取 SQLiteDatabase
  • XML 声明标签区分大小写吗?

    我有一个可能非常简单 愚蠢的问题 但我在任何地方都找不到答案 我需要对此非常确定 我有来自不同供应商的各种 XML 文件 其中一个供应商向我提供了一个 XML 文件 其中包含日语字符 最初 我在处理 XML 文件时遇到了麻烦 我正在使用微软
  • 具有多个捕捉点的 CoordinatorLayout

    这里我有一个相当复杂的动画 可以使用以下方法以简单的方式解决 我相信 协调器布局 它有3个状态 初始 左屏幕 标题视图完全显示 橙色 背景 工具栏 灰色圆角矩形 实际上是那里的照片 加上下面的一些其他视图 TextViews RatingB
  • 在 R 中抓取受密码保护的网站

    我正在尝试从 R 中受密码保护的网站中抓取数据 通过阅读 httr 和 RCurl 包似乎是使用密码身份验证进行抓取的最佳选择 我还研究了 XML 包 我试图抓取的网站如下 您需要一个免费帐户才能访问完整页面 http subscriber
  • 使用 Visual Studio 2010 运行 64 位版本的 IIS Express 8 RC

    我有一个使用 64 位版本的网络应用程序SharpSvn 具有非托管依赖项的托管 DLL 它不能在 IIS Express 7 0 中运行 切换到 32 位版本的程序集效果很好 我安装的是64位版本IIS 8 RC 但是 Visual St
  • 为什么这不能在 Java 中编译?

    如果你给 public class test public static void main String ar if true int i 0 它没有编译 但带大括号的相同代码是 public class test public stat
  • 为笔记本设置默认 sys.path

    我将所有 py 文件放在文件夹 script 中 将所有 IPython 笔记本放在名为 Notebook 的文件夹下 每个笔记本文件对脚本上的一个或多个文件存在多个交叉依赖关系 Having sys path append在每个笔记本顶部
  • Sails.JS HTTP + HTTPS

    我正在尝试弄清楚如何提升一个同时响应 HTTP 和 HTTPS 请求的 sails 应用程序 我使用了 config local js 方法来配置express 如下 详细here var fs require fs module expo
  • 警报对话框中 EditText 框的空验证 - Android

    我正在尝试向位于警报对话框内的编辑文本字段添加一些文本验证 它提示用户输入名称 我想添加一些验证 这样如果他们输入的内容为空或为空 除了创建一个显示错误的 Toast 之外 它不会执行任何操作 到目前为止我有 AlertDialog Bui
  • IoC、Dll 引用和程序集扫描

    虽然这个问题与 StructureMap 有关 但我的一般问题是 使用 IoC 连接组件时 容器in code 相反 通过配置xml 你 通常需要明确的项目 构建 对所有程序集的引用 为什么要使用单独的组件 因为 抽象类驻留在 将组件与混凝
  • W/ViewRootImpl:由于没有窗口焦点而取消事件:MotionEvent?

    每次我从子活动按回父活动时都会收到此错误 W ViewRootImpl Cancelling event due to no window focus MotionEvent action ACTION CANCEL actionButto
  • 如何在 CouchDB 中使用 Map-Reduce 计算最大值?

    我知道有内置的 stats提供 sum count min max 和 sumsqr 的函数 我想知道的是如何以映射缩减方式计算最大值 如果没有更多信息 我无法想出一个可以工作的归约函数 我唯一能想到的就是对值进行排序并选取第一个值 我的地
  • 如何对单个 Neo4j 数据库进行分区?

    是否可以将一个 Neo4j 数据库进行划分 使一个数据库中有多个起点 从而可以隔离所有查询 而不是拥有多个数据库 我已经考虑过这一点 并且我认为它在一定程度上可以发挥作用 但是一旦使用了标签之类的东西 那么这个想法就行不通了 因为标签查询将
  • 在 jenkins 的 github pull request 中添加评论

    我在 Jenkins 中使用 Git 拉取请求构建器插件将拉取请求链接到 Jenkins 作业由钩子触发 一切运行顺利 尽管如此 在构建结束时 我想在出现失败 成功或错误时添加注释 我尝试使用管道并使用 pullRequest commen
  • AsyncUdpSocket如何使用接收

    我正在尝试让 iPhone 的程序在模拟器上运行 我的问题是接收 UDP 数据 我使用异步 Udp 套接字 如果我制作一个套接字并使用sendData NSData toHost 效果很好 我想我无法弄清楚接收功能是如何工作的 我假设是这样
  • MySQL、json、JSON_ARRAY_APPEND - 为什么追加在 5.7.13 上不起作用?

    我到底如何将数据插入 json mysql 字段 我可以创造一个记录 INSERT INTO git object user id git meta last update VALUES 11111 host a id 1 select n
  • instagram api 中的回调 url 是什么以及如何实现它

    嗨 我是初学者程序员 我正在尝试使用 Instagram 的实时照片更新 api 我的目的是使用这个API CONSOLE的订阅方法 https apigee com console instagram 但我无法理解和处理回调 url 回调
  • 具有离线路线功能的离线 iPhone 地图 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在开发一个 iPhon
  • 如何传递日期时间参数?

    如何将 UTC 日期传递给 Web API Passing 2010 01 01工作正常 但是当我传递 UTC 日期时 例如2014 12 31T22 00 00 000Z 带有时间部分 我收到 HTTP 404 响应 所以 http do