Как я могу сохранить данные разбора в какую-то переменную - PullRequest
0 голосов
/ 14 сентября 2018

это код внутри метода View.did ()

let myUrl = URL(string: "http://upegov.in:5002/api/AdbRegistrationNew");

var request = URLRequest(url:myUrl!)    
request.httpMethod = "POST"// Compose a query string

let postString = "hello";

request.httpBody = postString.data(using: String.Encoding.utf8);

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

    if error != nil {
        print("error=\(error)")
        return
    }

    // You can print out response object
    print("response = \(response)")

    //print out the response body

    let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)

    print("response data = \(responseString)")
    //Let's convert response sent from a server side script to a NSDictionary object:
    do {
        let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary

        if let parseJSON = json {

            // Now we can access value of First Name by its key
            var Otp = parseJSON["Otp"] as? String
            print(Otp!)

        }
    } catch {
        print(error)
    }
}
task.resume()

Вывод данных ответа

данных ответа = Необязательно ([{"Msg": "1", "Otp": "6359"}]) **

1 Ответ

0 голосов
/ 14 сентября 2018

Вы можете использовать Codable Protocol и создать переменную этой модели в ViewModel и сохранить ее в хранилище CoreData / Realm или создать переменную в синглтоне.

Создание структуры с протоколом Codable

struct otpValueModel: Codable {
  let Msg: String?
  let Otp: String?
}

func sendRequest(completion : @escaping (( Data?, Error?) -> Void)) {
    let myUrl = URL(string: "http://upegov.in:5002/api/AdbRegistrationNew");
    var request = URLRequest(url:myUrl!)
    request.httpMethod = "POST"// Compose a query string
    let postString = "hello";
    request.httpBody = postString.data(using: String.Encoding.utf8);
    let task = URLSession.shared.dataTask(with: request) { (data: Data?, response: URLResponse?, error: Error?) in
        completion(data, error)
    }
    task.resume()
}

func parseData(data: Data?, error: Error?, modelCompletion: @escaping (( [otpValueModel] ) -> Void)) {
    guard let dataResponse = data, error == nil else {
            print(error?.localizedDescription ?? "Response Error")
            return
    }
    do {
        //here dataResponse received from a network request
        let decoder = JSONDecoder()
        let models = try decoder.decode([otpValueModel].self, from:  dataResponse)
        modelCompletion(models)
    } catch let parsingError {
        print("Error", parsingError)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...