2017-03-27 3 views
0

Ich versuche, diese Anfrage zu stellen, aber nur Fehler 401, ist die Anfrage korrekt? Ich habe Grund AuthFehleranforderung Alamofire + Basic Auth

var user = "" 
    var password = "" 

    user = textField.text! 
    password = textField2.text! 

    print(user) 
    print(password) 


    let credentialData = ("\(user):\(password)").data(using: String.Encoding.utf8)! 
    print(credentialData) 
    let base64Credentials = credentialData.base64EncodedString(options: []) 
    print(base64Credentials) 
    let headers: HTTPHeaders = ["Authorization":" Basic \(base64Credentials)"] 

    print(headers) 

    Alamofire.request("https://www.floratilemevidencia.com.br/wp-json/wp/v2/users/me", headers: headers) 
     .validate().responseJSON { response in 
      switch response.result { 

      case .success: 
       print("Validation Successful") 
       let viewController: UIViewController = self.storyboard!.instantiateViewController(withIdentifier: "SideNavigationController") 
       self.present(viewController, animated: true, completion: { _ in }) 

      case .failure(let error): 
       print(error.localizedDescription) 
       self.alertLabel.isHidden = false 
      } 
    } 

Es gibt mir nur verwenden, Fehler 401.

Es ist richtig Teil httpheaders?

+0

Haben Sie eine Antwort gefunden? –

Antwort

0

Machen Sie kleine Änderungen im Code und es wird funktionieren.

var user = "" 
var password = "" 

user = textField.text! 
password = textField2.text! 

print(user) 
print(password) 


let credentialData = ("\(user):\(password)").data(using: String.Encoding.utf8)! 
print(credentialData) 

let base64Credentials = credentialData.base64EncodedString(options: []) 
print(base64Credentials) 

let url: String = "https://www.floratilemevidencia.com.br/wp-json/wp/v2/users/me" 

var request = URLRequest(url: NSURL(string: url)! as URL) 
request.httpMethod = "GET" 
request.setValue("Basic \(base64Credentials)", forHTTPHeaderField: "Authorization") 

Alamofire.request(request) 
    .validate().responseJSON { response in 
     switch response.result { 

     case .success: 
      print("Validation Successful") 
      // Your desired functionality 

     case .failure(let error): 
      print(error.localizedDescription) 
      // Your desired functionality 

     } 
} 
0

Besser, Alamofire generieren Ihre Kopfzeile. https://github.com/Alamofire/Alamofire#authentication pro

EDIT

diesen Block von

Code ersetzen
let credentialData = ("\(user):\(password)").data(using: String.Encoding.utf8)! 
print(credentialData) 
let base64Credentials = credentialData.base64EncodedString(options: []) 
print(base64Credentials) 
let headers: HTTPHeaders = ["Authorization":" Basic \(base64Credentials)"] 

mit

var headers: HTTPHeaders = [:] 

if let authorizationHeader = Request.authorizationHeader(user: user, password: password) { 
    headers[authorizationHeader.key] = authorizationHeader.value 
} 
+0

Wie würde es aussehen, können Sie mir Beispiel zeigen, ich bin neu zu schnellen – Ghost

+0

Ich versuchte dieses Formular, es gibt mir immer noch Fehler 401, kann es Serverfehler sein? – Ghost

+0

Ich würde empfehlen, Postman https://www.getpostman.com/ versuchen und bestätigen, dass Ihr Server gute Werte zurückgibt. Haben Sie Zugriff auf Ihren Server, um sich Protokolle anzusehen? – dmorrow