Как получить данные с TextView и передать их в запрос Alamofire через Parameters в SwiftUI

//
//  ContentView.swift
//  AlamofireRequests
//
//  Created by Ринат on 23.10.2023.
//

import SwiftUI
import Alamofire

struct User: Codable {
    var username: String
    var password: String
}

func postMethod() {
    let params: Parameters = [
        "username": "test",
        "password": "test",
        ]
    
    
    AF.request("https://someurl/user-api/login", method: .post, parameters: params, encoding: JSONEncoding.default, headers: nil).validate(statusCode: 200 ..< 299).responseData { response in
            switch response.result {
                case .success(let data):
                    do {
                        guard let jsonObject = try JSONSerialization.jsonObject(with: data) as? [String: Any] else {
                            print("Error: Cannot convert data to JSON object")
                            return
                        }
                        guard let prettyJsonData = try? JSONSerialization.data(withJSONObject: jsonObject, options: .prettyPrinted) else {
                            print("Error: Cannot convert JSON object to Pretty JSON data")
                            return
                        }
                        guard let prettyPrintedJson = String(data: prettyJsonData, encoding: .utf8) else {
                            print("Error: Could print JSON in String")
                            return
                        }
                
                        print(prettyPrintedJson)
                    } catch {
                        print("Error: Trying to convert JSON data to string")
                        return
                    }
                case .failure(let error):
                    print(error)
            }
        }

}

struct ContentView: View {
    //@State public var userLogin = User(username: "", password: "")
    
    @State private var usrnm = ""
    @State private var pswrd = ""
    
    var body: some View {
        VStack {
            //TextField("Логин", text: $userLogin.username)
            //SecureField("Пароль", text: $userLogin.password)
            
            TextField("Логин", text: $usrnm)
            SecureField("Пароль", text: $pswrd)
            
            Button("Войти") {
                debugPrint($usrnm, $pswrd)
                
                //postMethod()
            }
        }
        .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

Ответы (0 шт):