Funktioniert nicht – Benutzer in API programmgesteuert in Swift 3/4 registrierenIOS

Programmierung für iOS
Guest
 Funktioniert nicht – Benutzer in API programmgesteuert in Swift 3/4 registrieren

Post by Guest »

Ich versuche, einen Benutzer in meiner API zu registrieren. Wenn ich es in Postman mache, registriert es den Benutzer und gibt den Status als „True“ und die Meldung „User Created“ zurück. Wenn ich jedoch versuche, programmgesteuert einen neuen Benutzer aus Swift zu erstellen, wird immer angezeigt, dass „User bereits vorhanden“ ist (was eine falsche Antwort gibt), obwohl dies der Fall ist ist nicht registriert. Ich verwende Swift 4 Xcode 9.
Der fast gleiche Code funktioniert für die Anmelde-API, aber nicht für die Benutzerregistrierung. Auch nachdem ich diesen Benutzer über Postman in der API registriert habe, funktioniert die Anmeldung einwandfrei. Ich verstehe also nicht, wo das Problem mit RegisterUser liegt. Der Code zeigt keinen Fehler an.
Hier ist mein Code für die Registrierung des Benutzers:

Code: Select all

import UIKit
import SwiftyJSON
import Alamofire
import SwiftKeychainWrapper

class RegisterUserViewController: UIViewController {
@IBOutlet weak var firstNameTextField: UITextField!
@IBOutlet weak var lastNameTextField: UITextField!
@IBOutlet weak var emailAddressTextField: UITextField!
@IBOutlet weak var passwordTextField: UITextField!
@IBOutlet weak var repeatPasswordTextField: UITextField!

override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

@IBAction func cancelButtonTapped(_ sender: Any) {
print("Cancel button tapped")

self.dismiss(animated: true, completion: nil)
}

@IBAction func signupButtonTapped(_ sender: Any) {
print("Sign up button tapped")

// Validate required fields are not empty
if (firstNameTextField.text?.isEmpty)! ||
(lastNameTextField.text?.isEmpty)! ||
(emailAddressTextField.text?.isEmpty)! ||
(passwordTextField.text?.isEmpty)!
{
// Display Alert message and return
displayMessage(userMessage: "All fields are quired to fill in")
return
}

// Validate password
if ((passwordTextField.text?.elementsEqual(repeatPasswordTextField.text!))! != true)
{
// Display alert message and return
displayMessage(userMessage: "Please make sure that passwords match")
return
}

let userdefault = UserDefaults.standard
userdefault.set(emailAddressTextField.text, forKey: "email_id")
//userdefault.set(emailAddressTextField, forKey: "email_id")
print("email_id",emailAddressTextField.text)

//print("email_address",userdefault.string(forKey: "email_id"))

var request = URLRequest(url: URL(string: "http://horn.hostingduty.com/api/v1/app_adduser")!)
request.httpMethod = "POST"
print("its working")
let postString =    "first_name=\(firstNameTextField.text)";
"last_name=\(lastNameTextField.text)";
"email_id=\(emailAddressTextField.text)";
"password=\(passwordTextField.text)"

request.httpBody = postString.data(using: .utf8)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data, error == nil else {                                                 // check for fundamental networking error
print("error=\(error)")
return
}

if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 {           // check for http errors
print("statusCode should be 200, but is \(httpStatus.statusCode)")
print("response = \(response)")
}

var responseString = String(data: data, encoding: .utf8)
print("responseString = \(responseString)")

if(responseString?.contains("true"))!{

DispatchQueue.main.async
{

let homePage = self.storyboard?.instantiateViewController(withIdentifier: "HomePageViewController") as! SWRevealViewController
let appDelegate = UIApplication.shared.delegate
appDelegate?.window??.rootViewController = homePage

}

print("status = true")

}
else{

DispatchQueue.main.async
{

self.showToast(message:  "Already exists !! ")
}
print("Status = false")

}
}

task.resume()

}
func displayMessage(userMessage:String) -> Void {
DispatchQueue.main.async
{}
let alertController = UIAlertController(title: "Alert", message: userMessage, preferredStyle: .alert)

let OKAction = UIAlertAction(title: "OK", style: .default) { (action:UIAlertAction!) in
// Code in this block will trigger when OK button tapped.
print("Ok button tapped")
DispatchQueue.main.async
{
self.dismiss(animated: true, completion: nil)
}
}
alertController.addAction(OKAction)
self.present(alertController, animated: true, completion:nil)
}

}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post