在网络中处理日期时间 api
Working with date time in web api
我已经创建了一个 WEB API
using MySQL
数据库。 table 包括有关仪表序列号、信号强度值和信号强度出现的日期时间的数据。现在我通过发送仪表的序列号成功地获取了数据。
现在我也将日期时间参数发送给它。但这对我不起作用。以下是我所做的。
public HttpResponseMessage GetByMsn(string msn, DateTime dt)
{
try
{
return Request.CreateResponse(HttpStatusCode.Found, medEntitites.tj_xhqd.Where(m=> m.msn == msn).Where(a=> a.date_time < dt ));
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
}
}
WebApiConfig
文件包括
config.Routes.MapHttpRoute(
name: "GetByMsn",
routeTemplate: "api/{controller}/{action}/{msn}/{dt}",
defaults: null,
constraints: new { msn = @"^[0-9]+$" , dt = @"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$" }
);
之后我通过 URL 就像 http://localhost:14909/api/meters/GetByMsn/000029000033/2017-10-06T07:52:27
我收到的错误是 A potentially dangerous Request.Path value was detected from the client (:).
为此,我也搜索了解决方案,但找不到正确的解决方案。另外我已经在日期时间替换了 :
但它仍然不适合我
更新 1
虽然只传递日期2017-10-06
它对我有用但是当我用时间附加它时它不起作用
为了快速检查,我检查了这个 question 但我仍然无法解决问题。
我肯定漏掉了一些我不知道的东西
非常感谢任何帮助。
经过大量搜索,我终于找到了解决方案。
我已经更改了 Web.config 中预定义的 disallowed/invalid 个字符。在 下,添加了以下内容:<httpRuntime requestPathInvalidCharacters="<,>,%,&,*,\,?" />.
我已经从无效字符的标准列表中删除了 :
。
有关详细信息,请参阅此 solution
我已经创建了一个 WEB API
using MySQL
数据库。 table 包括有关仪表序列号、信号强度值和信号强度出现的日期时间的数据。现在我通过发送仪表的序列号成功地获取了数据。
现在我也将日期时间参数发送给它。但这对我不起作用。以下是我所做的。
public HttpResponseMessage GetByMsn(string msn, DateTime dt)
{
try
{
return Request.CreateResponse(HttpStatusCode.Found, medEntitites.tj_xhqd.Where(m=> m.msn == msn).Where(a=> a.date_time < dt ));
}
catch (Exception ex)
{
return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
}
}
WebApiConfig
文件包括
config.Routes.MapHttpRoute(
name: "GetByMsn",
routeTemplate: "api/{controller}/{action}/{msn}/{dt}",
defaults: null,
constraints: new { msn = @"^[0-9]+$" , dt = @"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$" }
);
之后我通过 URL 就像 http://localhost:14909/api/meters/GetByMsn/000029000033/2017-10-06T07:52:27
我收到的错误是 A potentially dangerous Request.Path value was detected from the client (:).
为此,我也搜索了解决方案,但找不到正确的解决方案。另外我已经在日期时间替换了 :
但它仍然不适合我
更新 1
虽然只传递日期2017-10-06
它对我有用但是当我用时间附加它时它不起作用
为了快速检查,我检查了这个 question 但我仍然无法解决问题。
我肯定漏掉了一些我不知道的东西
非常感谢任何帮助。
经过大量搜索,我终于找到了解决方案。
我已经更改了 Web.config 中预定义的 disallowed/invalid 个字符。在 下,添加了以下内容:<httpRuntime requestPathInvalidCharacters="<,>,%,&,*,\,?" />.
我已经从无效字符的标准列表中删除了 :
。
有关详细信息,请参阅此 solution