- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试从 HttpUrlResponse 获取 header 时,我发现 iOS 模拟器不区分大小写,而真实设备区分大小写。
The web service returns an HTTP header "Grandmas-Cookies: XXXX"
当header key有大写字母时:urlResponse.response.allHeaderFields["Grandmas-Cookies"] 作为?字符串
当header key全部为小写字母时:urlResponse.response.allHeaderFields["grandmas-cookies"] 作为?字符串
我可以对模拟器进行设置以使其行为与真实设备类似吗?在这一点上,将 Web 服务中的 HTTP header 更改为小写是不可取的,但奇怪的是,这种情况最近才开始发生(是的,这是那些有趣的时光之一)。
最佳答案
编辑:
@Adam 我找到了一个更好的方法来确保这不是问题。
我创建了这个使检查不区分大小写的函数。
func find(header: String) -> String? {
let keyValues = allHeaderFields.map { (String(describing: $0.key).lowercased(), String(describing: $0.value)) }
if let headerValue = keyValues.filter({ $0.0 == header.lowercased() }).first {
return headerValue.1
}
return nil
}
以下内容可能对某些人仍然有用。
为了解决这个问题,我创建了一个struct
。在 struct
中,我创建了一个静态变量 grandmasCookies
,现在可以从应用程序中的任何位置引用它。这将返回大写
Grandmas-Cookies
当您在手机设备上运行时。
返回小写
grandmas-cookies
当您在 MacBook Pro 等设备上的模拟器中运行时。
struct Platform {
static let grandmasCookies: String = {
var xtoken = "Grandmas-Cookies"
#if arch(i386) || arch(x86_64)
xtoken = "grandmas-cookies"
#endif
return xtoken
}()
static let isSimulator: Bool = {
var isSim = false
#if arch(i386) || arch(x86_64)
isSim = true
#endif
return isSim
}()
}
我创建了第二个便利变量 isSimulator
,它在从模拟器运行时返回 true,在手机设备上运行时返回 false。
我改编了这个 StackOverflow 中的代码 post制定适用于您的场景和我所面临的场景的解决方案。
关于iOS HttpUrlResponse header 字段区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44315389/
我正在与执行 304 重定向的 REST API 作斗争;我需要的是获取重定向的目标 URL 并用浏览器打开它(我知道,这有点变态)。我成功拦截了重定向,感谢这个好小伙子reversepanda: h
尝试从 HttpUrlResponse 获取 header 时,我发现 iOS 模拟器不区分大小写,而真实设备区分大小写。 The web service returns an HTTP header
我正在开发一个登录应用程序,成功登录响应返回 2 个 cookie 后,我想从 HTTPURLResponse 的 header 中获取这 2 个 cookie,但我不能(httpResponse 字
这里有一个新的 Swift 人。我正在尝试弄清楚如何将多个 Alamofire 调用链接在一起。 我需要 从服务器 1 获取授权 token 从服务器 1 获取一些数据(需要授权 token ) 从服
我想调用一个 API 及其应用程序的一部分,但我想确保获得我正在调用的站点的状态代码(以防止运行时错误)。我无法获取 URLResponse 的状态代码,但我可以获取 HTTPURLResponse
我正在将我的应用程序更新到 Swift 3,并使用 Alamofire 处理对 REST 服务器的 API 调用。这是我的功能: extension Alamofire.Request { f
我正在制作一个 iOS 应用程序,但遇到了这个问题。 我的应用大部分只有西类牙语,所以我更改了开发语言(以困难的方式,更改 project.pbxproj 中的 developmentRegion =
转换到 Swift 3 时,我注意到一个奇怪的错误发生在从 HTTPURLResponse 读取 header 字段时。 let id = httpResponse.allHeaderFields["
我刚开始从 swift 2.2->3.0 转换我的旧项目。在这个过程中,我不得不将 Alamofire 更新到 4.0 版以获得对新 swift 版本的支持。我已经修复了大部分问题,但我还没有解决这个
我想使用 Alamofire 通过 Mailgun 发送电子邮件。我正在使用下面的代码发送请求,但我收到错误 Cannot call value of non-function type 'HTTPU
自从我更新了 Alamofire 之后,我得到了错误:Type Request has no member JSONResponseSerializer and cannot call value o
我在 codingforentrepreneurs.com 学习如何制作 iOS 应用 现在我在研究 Alamofire。 Xcode 是 8.3.3 这是错误命令。我不明白错误命令。 Cannot
我目前正在将我的代码库更新到 Swift 3.0。我正在使用 Alamofire。我不得不将 Alamofire 更新到 4.0 ( Alamofire git repo )。我有一种下载媒体(视频)
我是一名优秀的程序员,十分优秀!