【发布时间】:2016-04-10 08:54:33
【问题描述】:
我已经为这个问题苦苦挣扎了几天,但仍然没有找到解决方案。基本上,我使用 Alamofire 进行 POST NSURLRequest 并在请求正文中将用户和密码作为 json 发送,以便我可以在响应中接收会话令牌:
let mutableURLRequest = NSMutableURLRequest(URL: NSURL(string: path)!)
mutableURLRequest.HTTPMethod = "POST"
mutableURLRequest.setValue("application/json", forHTTPHeaderField:"Content-Type")
switch self {
case AuthenticateApp:
let parameters = [
"method": "login",
"params": [
"user": user,
"password": pass
]
]
mutableURLRequest.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(parameters, options: [])
case ...
我的问题是该请求仅在 iphone 5s 及更高版本上成功,而在 iphone 4s 或 5 上运行相同请求时出现错误:
{
"error" : "Login or password was invalid.",
"code" : 1
}
我已尝试打印和检查多个内容,但没有找到任何可以指出问题根源的内容。我尝试了NSHTTPURLResponse different on iPhone 5 vs 5s 中给出的解决方案,并将以下代码添加到请求中,但没有帮助:
mutableURLRequest.setValue("gzip", forHTTPHeaderField:"Content-Encoding")
我打印了 iphone 5 和 5s 的响应标头字段,没有发现任何差异。好像服务器没有收到正确格式的用户名和密码?用户名包含“@”符号。这可能是造成问题的原因吗?
更新:
Apple 开发者论坛的一位好心人为我指明了正确的方向 - 来自 32 位设备的请求由于某种原因被服务器拒绝了。我现在不知道如何解决这个问题......
【问题讨论】:
-
可能是您的密码和用户不同。可能是服务器注意到密码/用户已被使用。
-
用户名/密码每次都相同。我不是以用户身份登录,而是以管理员身份授权应用程序。
标签: ios iphone swift httprequest alamofire