在iOS 11测试版测试我的iPad应用程序时,我观察到一种独特的行为,即响应中的HTTP标头会自动转换为小写。如何以编程方式更改此行为?我们在实际标头名称上检查了代码,这些代码不适用于iOS 11 beta,因为标头名称已转换为小写。
注意 - 将标头转换为小写的做法符合 HTTP 2.0 规范的准备工作。对于 HTTP 1.0,标头应该是不区分大小写的机器人,这并不总是遵循。 见 https://evertpot.com/http-2-finalized/
Chrome 更新 60 已经更改,因此响应标头现在是小写的(这给我们带来了一些问题!
预计所有浏览器都将在即将推出的更新中效仿,因此这是您需要注意的事情
在回答这个问题时,我假设您正在谈论的HTTP标头仅指键而不是标头的值。
如果要与大写字符串进行比较,可以在标头上使用NSString
实例方法-uppercaseString
。使代码不区分大小写是一个明智的举动,以防服务器由于某种原因被编辑为将来发送小写或混合大小写标头。
如果iOS将每个标题的值设置为小写,那就非常糟糕了。我建议您向Apple提交错误报告,无论键或值大小写是否被修改。也许您可以使用Charles Web Proxy进行验证,以查看响应是否确实已更改。
祝你好运!