Не работает – программная регистрация пользователя в API в Swift 3/4IOS

Программируем под IOS
Ответить
Anonymous
 Не работает – программная регистрация пользователя в API в Swift 3/4

Сообщение Anonymous »

Я пытаюсь зарегистрировать пользователя в своем API. Когда я делаю это в Postman, он регистрирует пользователя и возвращает статус как true и сообщение как «Пользователь создан», но когда я пытаюсь создать нового пользователя из Swift программно, он всегда показывает, что пользователь уже существует (давая ложный ответ), даже если он не зарегистрирован. Я использую Swift 4 Xcode 9.
Почти такой же код работает для API входа в систему, но не работает для регистрации пользователей. Кроме того, после того, как я зарегистрировал этого пользователя через почтальона в API, он отлично работает для входа в систему. Так что я не понимаю, в чем проблема с RegisterUser. В коде нет ошибок.
Вот мой код для регистрации пользователя:
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)
}

}


Подробнее здесь: https://stackoverflow.com/questions/491 ... -swift-3-4
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»