2016-02-18 61 views
1

的Hello World,alamofire头+参数

我来找你,因为,我尝试使用参数发送头在同一个函数是这样的:

Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: headers, parameters: parameters) 

但也许你已经知道了该头被送到。

我也试过这样:

let manager = Alamofire.Manager.sharedInstance 
manager.session.configuration.HTTPAdditionalHeaders = [ 
      "Authorization": token] 

manager.request(.PUT, "http://192.168.99.100:3030/users/\(identity)", parameters: parameters, encoding:.JSON) 

但头部没有发送..

什么是落实alamofire头最简单的方式?

由于通过提前;-)

的问候,在字典就像其他参数

回答

8

套头,并通过它的头。例如

let Auth_header = [ "Authorization" : token ] 

Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: Auth_header, parameters: parameters) 

您可以查看详细信息HTTP Basic Authentication

HTTP基本验证

上一个请求会自动提供NSURLCredential到NSURLAuthenticationChallenge的身份验证方法,在适当的时候:

let user = "user" 
let password = "password" 

Alamofire.request(.GET, "https://httpbin.org/basic-auth/\(user)/\(password)") 
    .authenticate(user: user, password: password) 
    .responseJSON { response in 
     debugPrint(response) 
    } 

取决于你的服务器实现塔季翁,Authorization头也可能是适当的:

let user = "user" 
let password = "password" 

let credentialData = "\(user):\(password)".dataUsingEncoding(NSUTF8StringEncoding)! 
let base64Credentials = credentialData.base64EncodedStringWithOptions([]) 

let headers = ["Authorization": "Basic \(base64Credentials)"] 

Alamofire.request(.GET, "https://httpbin.org/basic-auth/user/password", headers: headers) 
    .responseJSON { response in 
     debugPrint(response) 
    } 
+0

感谢给我个e方式;-) –

0

我已经做了什么,你在第一个评论说,但无论如何也有刚刚发送的头:

let parameters : [String : NSString] = [ 
      "username": username, 
      "email": email, 
      "currentPassword": currentpassword, 
      "newPassword": newpassword]   
let Auth_header = [ "Authorization" : token ] 

Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: Auth_header, parameters: parameters) 

解决的问题:probleme是我我以前不给编码参数

Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: Auth_header, parameters: parameters, encoding: .JSON) 

感谢EI队长