2017-05-07 51 views
0

私は保護されたAPIを持っており、そのユーザー名とパスワードを取得しています。私がPostmanを使うとき、私は "Basic Auth"タイプを選択し、身体にはユーザーのログイン情報などのパラメータがあります。それはうまく動作します。Alamofireの基本認証ヘッダー

enter image description here

しかし、私はAlamofireで同じことをやろうとしているが、私は右のJSONのリターンを得ることができません。ここに私がしたことがあります:

// 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) 
      } 



    } 

これはnilを返します。 AlamofireでPostmanメソッドを実行する方法を誰かに教えてもらえますか?ありがとう!

答えて

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 
      } 
    } 
関連する問題