1

我正在创建一个登录页面,其中连接到 API 以使用将在文本字段中输入的密码检索事件详细信息,但显示消息“无法成功执行此请求。请稍后再试”是唯一出现的内容。我无法跟踪我是否有连接错误或我编写的代码。如果有错误或遗漏,请帮助我并检查我的代码。谢谢你。

    //Read values from textfield
    let eventcode = appCodeTextField.text

    //Check if required fields are not empty
    if  (eventcode?.isEmpty)!
    {
    //Display alert message here
     self.displayMessage(userMessage: "Please input event code.")
        print("empty")
     return
    }


    //Send HTTP Request to perform Sign in
   let myUrl = URL(string: "http://hopprlab.com/api/events/passcodechecker/(event_id)")
    var request = URLRequest(url: myUrl!)

    request.httpMethod = "POST" //Compose a query string
    request.addValue("application/json", forHTTPHeaderField: "content-type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")

    let postString = ["eventcode": eventcode!]  as [String: String]

    do
    {
        request.httpBody = try JSONSerialization.data(withJSONObject: postString, options: .prettyPrinted)
    } catch let error {
        print (error.localizedDescription)
        displayMessage(userMessage: "Network Error!")
        return
    }

    let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in

        self.removeActivityIndicator(activityIndicator: myActivityIndicator)

        if error != nil
        {
            self.displayMessage(userMessage: "Could not successfully perform this request. Please try again later")
            print("error=\(String(describing: error))")
            return
        }

        //Convert response sent to server side code to a NSDictionary object:

        do{
            let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary

            if let parseJSON = json {

                if parseJSON["errorMessageKey"] != nil {
                    self.displayMessage(userMessage: parseJSON["errorMessage"] as! String)
                    return
                }

                //Now we can acess value
                let event_id = parseJSON["event_id"] as? String

                let saveEventId: Bool = KeychainWrapper.standard.set((event_id)!, forKey: "event_id")

                print("The event id save result \(saveEventId)")

                if (event_id?.isEmpty)!
                {
                 self.displayMessage(userMessage: "Could not successfully perform this request. Please try again later")

                    return
                }
                 DispatchQueue.main.async {
                 let dashBoardPage = self.storyboard?.instantiateViewController(withIdentifier: "DashBoardViewController") as! DashBoardViewController
                 let appDelegate = UIApplication.shared.delegate
                 appDelegate?.window??.rootViewController = dashBoardPage

                }
            } else {
                //Display an Alert dialog with a friendly error message
                self.displayMessage(userMessage: "Could not successfully perform this request. Please try again later")

        }

    } catch {
        self.removeActivityIndicator(activityIndicator: myActivityIndicator)

        //Display an Alert dialog with a friendly error message
        self.displayMessage(userMessage: "Could not successfully perform this request. Please try again later")
        print(error)

    }


    }
    task.resume()
4

0 回答 0