iOS OS 10.3.3与Alamofire POST(内容类型JSON)问题

时间:2017-08-07 14:24:31

标签: ios iphone swift alamofire

我一直在开发iOS应用程序并使用Alamofire 4.0 / Swift 3.1 / Xcode 8.3.3调用我的web服务。

在我的iPhone处于OS 10.0之前,一切似乎都运行良好。我今天将我的iPhone更新到10.3.3,突然间我的网络服务停止了工作。

以下是我一直在使用的代码:

NumberString

这是我在控制台中得到的:

class func verifyLoginCredentials(_ username: String, password: String, completion: @escaping (_ type: ResponseType , _ response : Int, _ message: String) -> Void) {

        var serviceURL = baseURL + "&task=login&email=" + username + "&pwd=" + password
        serviceURL = serviceURL.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)!
        let url = URL(string: serviceURL)
        let authHeader = ["":""]

        print(url!)

        request(url!, method: .post, parameters: nil, encoding: JSONEncoding.default, headers: authHeader).responseJSON(options:

        JSONSerialization.ReadingOptions.mutableContainers) { (serverResponse) -> Void in
            switch serverResponse.result {
            case .success(let JSON):

                debugPrint(JSON)

                if (JSON as AnyObject).value(forKey: "status") as! Int == 1 {
                    completion( ResponseType.kresponseTypeSuccess,(JSON as AnyObject).value(forKey: "status") as! Int, "")
                    // Set User Session
                    CFunctions.setLoginSession(JSON as AnyObject)
                } else {
                    completion( ResponseType.kresponseTypeSuccess,(JSON as AnyObject).value(forKey: "status") as! Int, (JSON as AnyObject).value(forKey: "response") as! String)
                }

            case .failure(let error):

                let dataString = String(data: serverResponse.data!, encoding: String.Encoding.utf8)
                print("verifyLoginCredentials Request failed with error: \(String(describing: dataString))")
                completion(ResponseType.kResponseTypeFail, error._code, "Service failed")

            }

        }
    }

我想在这里再说一件事。我的Web服务之前是从旧域(http://www.exoticcarclub.net/api/?)调用的。现在我的网络服务已经转移到新服务器并且还没有指出它的域名,所以他们给了我http://198.1.109.253/~ecc2014/api/?替换为。我认为这也可能是罪魁祸首。

有人可以指出OS 10.3.3中发生了什么吗?任何帮助将受到高度赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

我想我自己想出来了。

  1. 刚删除let authHeader = ["":""]行。
  2. 从请求行中删除了headers: authHeader个参数。
  3. 最后删除(options: JSONSerialization.ReadingOptions.mutableContainers)