我正在创建一个登录页面,其中连接到 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()