不要直接对Request.Headers[If-Modified-Since]使用Convert.ToDateTime
不要直接對Request.Headers["If-Modified-Since"]使用Convert.ToDateTime
前一段時間圖片處理服務(wù)一直報“System.FormatException: 該字符串未被識別為有效的 DateTime”。查了幾天,沒什么效果,昨天夜里寫了日志記錄,終于發(fā)現(xiàn)問題所在了。
一般來說 瀏覽器帶到服務(wù)器端的If-Modified-Since應(yīng)該是這種格式 Sun, 15 Nov 2009 04:57:01 GMT,但某些瀏覽器帶過來的格式通過Request.Headers["If-Modified-Since"]獲取到的卻是:Sun, 15 Nov 2009 04:57:01 GMT; length=11162。 所以如果我們直接 Convert.ToDateTime(Request.Headers["If-Modified-Since"])就會錯。
解決辦法如下:
DateTime clientIfModifiedSince = DateTime.Now.AddDays(-100);
?string if_Modified_Since =Request.Headers["If-Modified-Since"];
??????????????????? //Sun, 15 Nov 2009 04:57:01 GMT; length=11162
??????????????????? string[] if_Modified_Since_array = if_Modified_Since.Split(';');
??????????????????? if (if_Modified_Since_array.Length > 1)
??????????????????? {
??????????????????????? clientIfModifiedSince = Convert.ToDateTime(if_Modified_Since[0]);
??????????????????? }
??????????????????? else
??????????????????? {
??????????????????????? clientIfModifiedSince = Convert.ToDateTime(if_Modified_Since);
??????????????????? }
總結(jié)
以上是生活随笔為你收集整理的不要直接对Request.Headers[If-Modified-Since]使用Convert.ToDateTime的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringFramework4系列之S
- 下一篇: 将windows系统装到USB存储设备