авторизоваться с помощью GET запроса swift - PullRequest
0 голосов
/ 08 января 2020

Я создал экран с текстовым полем с именем customer_number текстовое поле и еще один экран с текстовым полем с именем пароль текстовое поле. Я хочу интегрировать свое приложение с существующим API, созданным бэкэнд-разработчиками. Я новичок в IOS разработке, и я не знаю, как go об этом. Как сделать запрос на получение и передать учетные данные для входа в систему?

Я хочу получить номер клиента из API, передать его в приложение и разрешить клиенту войти в систему.

1 Ответ

1 голос
/ 08 января 2020

Я думаю, что этот вопрос слишком большой и сложный, чтобы на него можно было дать исчерпывающий ответ. Вы не сказали нам об API. Какой ввод это займет? Какой ответ?

Предположим, самый простой случай. Ваш API ожидает JSON объектов в качестве ввода и отвечает другим JSON объектом, содержащим запрашиваемую вами информацию.

Обычно я делаю такие задачи, используя NSURLRequest.

let js = ["Username":username, "Password":password]
let session = URLSession.init(configuration: .default)
let url = URL(...)
var req = URLRequest.init(url: url, cachePolicy: .reloadIgnoringLocalAndRemoteCacheData, timeoutInterval: 10)

req.httpMethod = "POST"
// Add some header key-value pairs
req.addValue(..., forHTTPHeaderField: ...)
...
let task = session.dataTask(with: request) { (data, response, error) in
   guard error == nil else { return }
   guard let responseData = data else { return }
   let code = (response as! HTTPURLResponse).statusCode

   // Checking for code == 200 states for authorised user. Generally log-in APIs should return some 4xx code if not allowed or non-authorised user.
   if code == 200 {
      // Now we try to convert returned data as a JSON object
      do {
         let json = try JSONSerialization.jsonObject(with: responseData, options: [])
         // use your json object here, for example checking if contains the user number...
      } catch {
         // handle errors
      }

   } 
}
task.resume()

Я закодировал это очень быстро, пожалуйста, проверьте правильность всего механизма!

...