Jak převést Volitelné<Dictionary<String, Žádné>> Slovník<Řetězec> poslat Alamofire (5.4.4) post požadavek s json paramters?

0

Otázka

class func postLoginRequest(url: String, parameters: Parameters?, success: @escaping (Any) -> Void, failure: @escaping (NetworkError) -> Void) {
             
             
             if Network.isAvailable {
                 
                 let param : [String : Any] = [
                     "username" : "x",
                     "password" : "x"
                 ]
                 print (type(of: param))
                 print(param)

                 print(type(of: parameters))
                 print(parameters)
                
                 let manager = Alamofire.Session.default
                 manager.session.configuration.timeoutIntervalForRequest = Constants.NetworkError.timeOutInterval
                 manager.request(url, method: .post, parameters: param, encoding: JSONEncoding.default ).validate(statusCode: 200..<600).responseJSON { (response) -> Void in ...

Můj výstup dat, jako je uveden v níže;

Dictionary<String, Any>

["username": "x", "password": "x"]

Optional<Dictionary<String, Any>>

Optional(["username": Optional(<TextFieldEffects.HoshiTextField: 0x11c054600; baseClass = UITextField; frame = (41 10; 286 40); text = 'x'; opaque = NO; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x2821b45d0>; layer = <CALayer: 0x282f855c0>>), "password": Optional(<TextFieldEffects.HoshiTextField: 0x11c043600; baseClass = UITextField; frame = (41 10; 286 40); text = 'x'; opaque = NO; autoresize = RM+BM; gestureRecognizers = <NSArray: 0x2821afe40>; layer = <CALayer: 0x282f849c0>>)])

Když ı použití param jako parametry žádný problém. Mohu získat uživatelské jméno a heslo v backend (DJango) pro jwt auth. Ale ı cant když ı použít parametry jako parametry hodnoty. Jak tohle může dělat konverze poslat json dat tělo.

alamofire django swift
2021-11-11 11:49:32
2
0

Potřebujete bezpečně rozbalit převést něco z Volitelné Typ

let myDict: [String : Any]? = ["john" : "Appleseed"]
// 1. Using guard statements
guard let unwraped: [String : Any] = myDict else { 
    // The value is nil
    return 
}
// 2. Using if statements
if let unwraped: [String : Any] = myDict { 
    // unwraped value
}
else { 
    // The value is nil
}
// 3. Using force unwrap (be careful, this will crash your app if myDict is nil)
let unwraped = myDict!
2021-11-11 13:37:10
0

Moje chyba je odesílání UITextField jako hodnotu. Nestihl jsem to. První opravil jsem to. Po tom ı použít Zakódování.httpBody pro kódování údajů.

if Network.isAvailable {
                 
                 let manager = Alamofire.Session.default
                 manager.session.configuration.timeoutIntervalForRequest = Constants.NetworkError.timeOutInterval
                 manager.request(url, method: .post, parameters: parameters, encoding: URLEncoding.httpBody ).validate(statusCode: 200..<600).responseJSON { (response) -> Void in

Díky.

2021-11-12 06:27:51

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................