# 前言
坑是一定要踩的不然技术怎么进步呢~
# 场景
今天在调试解决一个视频断点下载的问题,发现视频地址播放后总是直接返回错误而不会下载。
经过调试后我发现我总是获取不到该视频的视频长度,what?
这时我已经大概知道应该是在获取 HTTPURLResponse 的 allHeaderFields 里 Content-Range 是有问题的。
我观察了 HTTP Header 还是熟悉的参数并没有问题,我在Objective-C 写了例子提取 Content-Range ,并没有问题。
HTTPURLResponse.allHeaderFields[@"Content-Range"]
Swift 中使用同样的方式获取
let contentRange = HTTPurlResponse.allHeaderFields["Content-Range"] as? String
为什么Swift 会有问题呢? 思考了很久我发现HTTP Header 的 content-range 是小写的,但是我记忆中allHeaderFields 是不区分大小写的。
然而这就是最坑的。。我在Swift中尝试了小写获取就成功了。。这看起来应该是Swift 的问题吧。 这里要提一下我是在Swift 3的环境中调试的。
虽然只是个小坑,不过还是记录下来,也许还有人会踩到同样的坑???