相关疑难解决方法(0)

Swift Alamofire:如何获取HTTP响应状态代码

我想检索请求失败的HTTP响应状态代码(例如400,401,403,503等)(理想情况下也是成功的).在此代码中,我使用HTTP Basic执行用户身份验证,并希望能够在用户输错密码时向用户发送身份验证失败的消息.

Alamofire.request(.GET, "https://host.com/a/path").authenticate(user: "user", password: "typo")
    .responseString { (req, res, data, error) in
        if error != nil {
            println("STRING Error:: error:\(error)")
            println("  req:\(req)")
            println("  res:\(res)")
            println("  data:\(data)")
            return
        }
        println("SUCCESS for String")
}
    .responseJSON { (req, res, data, error) in
        if error != nil {
            println("JSON Error:: error:\(error)")
            println("  req:\(req)")
            println("  res:\(res)")
            println("  data:\(data)")
            return
        }
        println("SUCCESS for JSON")
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,产生的错误似乎并不表示实际收到了HTTP状态代码409:

STRING Error:: error:Optional(Error Domain=NSURLErrorDomain Code=-999 "cancelled" UserInfo=0x7f9beb8efce0 {NSErrorFailingURLKey=https://host.com/a/path, NSLocalizedDescription=cancelled, NSErrorFailingURLStringKey=https://host.com/a/path})
  req:<NSMutableURLRequest: 0x7f9beb89d5e0> { URL: https://host.com/a/path }
  res:nil
  data:Optional("") …
Run Code Online (Sandbox Code Playgroud)

swift alamofire

96
推荐指数
8
解决办法
9万
查看次数

无法从Alamofire 3.3.0获取服务器错误消息

这是我第一次使用Alamofire它,它让我非常沮丧.

我正在使用以下代码在后端API上调用注册API

Alamofire.request(.POST, "\(self.authBaseURL)/signup", parameters: params, headers: headers, encoding: .JSON)
            .validate(statusCode: 200..<300)
            .validate(contentType: ["application/json"])
            .responseJSON { response in
                switch response.result {
                case .Success(let JSON):
                    print("Success with JSON: \(JSON)")
                    success(updatedUser)
                case .Failure(let error):
                    print("Request failed with error: \(error)")
                    failure(error)
                }

        }
Run Code Online (Sandbox Code Playgroud)

问题是我在.Failure函数中获得的错误对象不包含服务器端消息.我试图访问其余的对象(请求,响应,数据,结果)我无法在任何地方找到我的错误消息

无论服务器消息说什么,我总是会收到以下错误.请求失败并显示错误:

FAILURE:Error Domain = com.alamofire.error Code = -6003"响应状态代码不可接受:400"UserInfo = {NSLocalizedFailureReason =响应状态代码不可接受:400}

我在做什么有什么不对吗?

Swift 2.2,AlamoFire 3.3.0,Xcode 7.3

xcode ios swift alamofire

6
推荐指数
1
解决办法
8616
查看次数

Swift Package Manager 在使用 Almofire 时使用未解析的标识符“AF”

我通过Swift Package Manager(SPM)使用 Almofire并通过import Alamofire. 当我尝试使用 发出网络请求时AF,它给了我以下错误:

在此处输入图片说明

ios swift swift-package-manager

2
推荐指数
1
解决办法
1362
查看次数

标签 统计

swift ×3

alamofire ×2

ios ×2

swift-package-manager ×1

xcode ×1