ios – HTTPURLResponse allHeaderFields Swift 3资本化

ios – HTTPURLResponse allHeaderFields Swift 3资本化,第1张

概述转换为 Swift 3我注意到从HTTPURLResponse读取头字段时出现了一个奇怪的错误. let id = httpResponse.allHeaderFields["eTag"] as? String 不再工作了. 我打印出所有标题字典,我的所有标题键似乎都在Sentence案例中. 根据查尔斯代理,我的所有标题都是小写的.根据后端团队的说法,在他们的代码中,标题是Title-Case. 转换为 Swift 3我注意到从httpURLResponse读取头字段时出现了一个奇怪的错误.
let ID = httpResponse.allheaderFIElds["eTag"] as? String

不再工作了.

我打印出所有标题字典,我的所有标题键似乎都在Sentence案例中.

根据查尔斯代理,我的所有标题都是小写的.根据后端团队的说法,在他们的代码中,标题是title-case.根据文档:标题应该不区分大小写.

所以我不知道该相信哪一个.是否有其他人在Swift 3中发现他们的标题现在被iOS转为Sentence案例?如果是这样,我们想要的是什么?

我应该记录Apple的错误,还是应该在httpURLResponse上创建一个类别,以允许自己不区分大小写地找到标题值.

解决方法 更新:这是一个 known issue.

allheaderFIElds应返回不区分大小写的字典,因为这是http规范所要求的.看起来像Swift错误,我会提交雷达或错误报告.

以下是一些简单再现问题的示例代码:

let headerFIElds = ["ETag" : "12345678"]let url = URL(string: "http://www.example.com")!let response = httpURLResponse(url: url,statusCode: 200,httpVersion: "http/1.1",headerFIElds: headerFIElds)!response.allheaderFIElds["eTaG"] // nil (incorrect)headerFIElds["eTaG"] // nil (correct)

(改编自this Gist from Cédric Luthi.)

总结

以上是内存溢出为你收集整理的ios – HTTPURLResponse allHeaderFields Swift 3资本化全部内容,希望文章能够帮你解决ios – HTTPURLResponse allHeaderFields Swift 3资本化所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1108115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存