Alamofire不起作用

时间:2018-05-28 12:04:20

标签: ios swift alamofire

我编写了一个使用Almofire for REST的ios程序,对于应用程序的一部分,我需要向服务器发送POST请求并获取JSON,Alamofire正确发送请求和服务器响应应用程序但Almofire确实没有显示响应,实际上在下面的代码中,编译器从不运行“print(Result)”甚至服务器响应正确,为什么? (在代码中,评论不是英文!)

  Alamofire.request(urlString, method:HTTPMethod.post , parameters:    parameters, encoding: JSONEncoding.default, headers:headers).responseJSON
  { Result in

            // (responseData) -> Void in
                print(Result)
                if((Result.result.value) != nil)
                {
                    //data ra be value tabdil mikonad
                    let ResValue = JSON(Result.result.value!)
                    print(ResValue)

                    //check mikone ke aya key be name access_token vojod dare ya na
                    if   ( ResValue["error"].exists() )
                    {
                        //agar token expire shode bud
                        if (ResValue["error"] == "Authorization Required")
                        {

                            let pass = keychain.get("password")
                            //initial kardan class marbut be function get token
                            let get = LoginAndRegistration()

                            //estefade az function get token
                            get.getToken(userName:userName,passWord:pass!)
                            { results in
                                //agar gereftan token taiid shod
                                if results == "token got!"
                                {
                                    //gereftan data
 Alamofire.request(urlString,method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: ["content-Type":"application/json","Authorization":"JWT \(token)"]).responseJSON
                                        { response in

                                            //agar data vojod dasht
                                            if((response.result.value) != nil)
                                            {
                                                //data ra be value tabdil mikonad
                                                let responseValue = JSON(response.result.value!)
                                                //enteghal  data be dakhel tabe khanandeh
                                                //self.hairdressShow(json: responseValue)
                                                DataRe(responseValue)
                                            }

                                    }

                                }
                                    //agar token jadid ham daryaft nashod
                                else
                                {
                                    //seque be login page

                                    //DataRe((["test"] as AnyObject) as! Array<Any>,1,1)

                                    // DataRe(["message":"seque"])
                                }
                            }
                        }

                    }

                    //agar value "Data" vojod dasht, yani hamechi ok !
                    if ( ResValue["Data"].exists() )
                    {

                        //self.hairdressShow(json: ResValue)
                        DataRe(ResValue)


                    }

                    else
                    {

                        //  DataRe(["message":"Something's Wrong"])

                    }

                }
            }.resume()

2 个答案:

答案 0 :(得分:0)

您是否尝试过使用&#34;结果&#34;而不是&#34;结果&#34;?我认为Alamofire正在使用枚举结果,而不是你想要的变量,这就是为什么它像一个类一样着色。我不知道这是否能解决您的问题,但您可以尝试。

变量总是小写。

答案 1 :(得分:0)

试试这个:

Alamofire.request(urlString, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: headers).responseJSON { response in
   print("Request: \(String(describing: response.request))")// original url request
   print("Response: \(String(describing: response.response))")// http url response
   print("Result: \(response.result)")// response serialization result

   if let json = response.result.value {
       print("JSON: \(json)") // serialized json response
   }
}

以下是文档:https://github.com/Alamofire/Alamofire/blob/master/Documentation/Usage.md#http-methods