2017-12-10 2 views
0
import UIKit 
import Alamofire 
import SwiftyJSON 

class LoginViewController: UIViewController { 


    @IBOutlet weak var urlTextFiled: UITextField! 
    @IBOutlet weak var emailTextFiled: UITextField! 
    @IBOutlet weak var passwordTextFiled: UITextField! 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 

    } 

     guard let email = emailTextFiled.text, !email.isEmpty else { 
      return 
     } 
     guard let password = passwordTextFiled.text, !password.isEmpty else { 
      return 
     } 
     let db = "mohanad" 
     let url = "http://176.58.117.249/web/session/authenticate" 

     let parameters: [String: Any] = [ 
     "db": db, 
     "login": email, 
     "password": password , 
     ] 

     Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: nil) 
     .validate(statusCode: 200..<600) 
     .responseJSON { response in 

      switch response.result 
      { 
      case .failure(let error): 
       print(error) 

      case .success(let value): 

       print(value) 
      } 

     } 


    } 

} 

Drucke folgende Fehlermeldung:responseSerializationFailed mit Alamofire

responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840 "Invalid value around character 0." UserInfo={NSDebugDescription=Invalid value around character 0.}))

+0

{ "JSON-RPC": "2.0", "Methode": "call", "params": { "db":“ mohanad "," login ":" [email protected] "," passwort ":" mohanad123 "}} –

+0

Ihr Server sendet mir diese Antwort' Bad Request'. Sieh meine Antwort. – AshvinGudaliya

Antwort

0

testen

Paramter:

let parameters: [String: Any] = [ 
     "jsonrpc":"2.0", 
     "method":"call", 
     "params": [ 
      "db": db, 
      "login": "[email protected]‌​.ps", 
      "password": "moh‌​anad123", 
      ] 
     ] 

Anfrage. Verwenden Sie eine encoding: JSONEncoding.default, weil Sie den Raw-Wert übergeben haben.

Alamofire.request(url, method: .post, parameters: parameters, encoding: JSONEncoding.default, headers: nil) 
     .validate(statusCode: 200..<600) 
     .responseJSON { response in 

      switch response.result 
      { 
      case .failure(let error): 
       if let data = response.data { 
        print("Print Server Error: " + String(data: data, encoding: String.Encoding.utf8)!) 
       } 
       print(error) 

      case .success(let value): 

       print(value) 
      } 

    } 

Ihre api geben Sie mir diese Art von Daten in diesem

"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">\n<title>400 Bad Request</title>\n<h1>Bad Request</h1>\n<p>Session expired (invalid CSRF token)</p>\n" 
+0

Druckserverfehler: 400 Bad Request

Bad Request

ungültige JSON-Daten: ‚db = mohanad & login = mohanad% 40amana.ps & password = mohanad123 '

responseSerializationFailed (Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed (Error Domain = NSCocoaErrorDomain-Code = 3840 "Ungültige Wert um Zeichen 0" Userinfo = {NSDebugDescription = Unzulässiger Wert um Zeichen 0})) –

+0

meine Antwort aktualisiert Versuchen. Verwenden Sie diesen Parametertyp und verwenden Sie dann die aktualisierte Antwort. '{" jsonrpc ":" 2.0 "," Methode ":" call "," params ": {" db ":" mohanad "," login ":" mohanad @ amana .ps "," passwort ":" moh anad123 "}}' – AshvinGudaliya

+0

ich benutze deinen Code Ich habe diesen Fehler: Druckserverfehler: 400 Bad Request

Bad Request

ungültige JSON-Daten: 'db = mohanad & login = mohanad% 40amana.ps & password = mohanad123'

AshvinGudaliya responseSerializationFailed (Alamofire.AFError .ResponseSerializationFailureReason.jsonSerializationFailed (Fehlerdomäne = NSCoaErrorDomain Code = 3840 "Ungültiger Wert um das Zeichen 0." UserInfo = {NSDebugDescription = Ungültiger Wert um das Zeichen 0.})) –

0

Replace .responseJSON mit .responseString so:

Statt:

Alamofire.request(url, method: .post, parameters: parameters, encoding: URLEncoding.default, headers: nil).responseJSON 
{ response in 
     //....     
} 

tun:

+0

das gleiche :(responseSerializationFailed (Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed (Fehlerdomäne = NSCOAErrorDomain Code = 3840 "Ungültiger Wert um das Zeichen 0." UserInfo = {NSDebugDescription = Ungültiger Wert um das Zeichen 0.})) –

+0

@MohanadHilles Sie sind sicher Sie verwendet .responseString !! –

+0

Ihr Server gibt? 400 Bad Request

Bad Request

Session abgelaufen (ungültige CSRF-Token)