2017-05-07 6 views
0

Ich habe eine geschützte API und ich habe den Benutzernamen und das Passwort dafür. Wenn ich Postman benutze, wähle ich den Typ "Basic Auth" und im Body habe ich die Parameter wie die Benutzer-Login-Informationen. Es funktioniert gut.Basic Auth-Header in Alamofire

enter image description here

Jedoch versuche ich das Gleiche mit Alamofire zu tun, aber ich kann das Recht JSON Rückkehr nicht bekommen. Hier ist, was ich getan habe:

// user auth 
    let param = ["mobile":"3", "password":"100200"] 
    let urlStr = "http://MyApi.com/api/login" 
    let url = URL(string: urlStr) 

    // api auth 
    let user = "apiUserName" 
    let password = "ApiAuthPassword" 


    var headers: HTTPHeaders = ["mobile":"001", 
           "password":"1111"] 

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

    Alamofire.request(url!, headers: headers) 
     .responseJSON { response in 

      print(response.result.value) 
      if let value: AnyObject = response.result.value as AnyObject? { 
       //Handle the results as JSON 
       print(value) 
       let usertoken = JSON(value) 

       print(usertoken) 
      } 



    } 

Dies gibt Null zurück. Kann mir jemand helfen, wie man die Postman-Methode mit Alamofire macht? Vielen Dank!

Antwort

0
let user = "your username" 

let password = "your password" 

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

let base64Credentials = credentialData.base64EncodedString() 


    let headers = [ 
      "Authorization": "Basic \(base64Credentials)", 
      "Accept": "application/json", 
      "Content-Type": "application/json" ] 

//put slash before \ (base64Credentials) 

    Alamofire.request("place your url", method: .get, parameters: nil,encoding: URLEncoding.default, headers: headers) .responseJSON { response in 
     switch response.result { 
      case .success(_): 
       //your success code 
      }  
      case .failure(_): 
       //your failure code 
      } 
    }