alamofire header + 参数
alamofire header + parameters
你好世界,
我来找你是因为,我尝试在同一个函数中发送带有参数的 headers,如下所示:
Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: headers, parameters: parameters)
但也许您已经知道只发送了 headers。
我也这样试过:
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)
但是 headers 没有发送..
在 alamofire 中实现 headers 的简单方法是什么?
提前致谢;-)
问候,
像其他参数一样在字典中设置headers,并在headers中传递。例如
let Auth_header = [ "Authorization" : token ]
Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: Auth_header, parameters: parameters)
您可以查看详情HTTP Basic Authentication
HTTP 基本身份验证
请求上的身份验证方法将在适当时自动向 NSURLAuthenticationChallenge 提供 NSURLCredential:
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)
}
根据您的服务器实现,授权 header 也可能是合适的:
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)
}
我已经按照你在第一条评论中所说的做了,但无论如何只有 headers 发送:
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)
已解决:问题是我没有在参数
中给出编码
Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: Auth_header, parameters: parameters, encoding: .JSON)
感谢EI队长
你好世界,
我来找你是因为,我尝试在同一个函数中发送带有参数的 headers,如下所示:
Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: headers, parameters: parameters)
但也许您已经知道只发送了 headers。
我也这样试过:
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)
但是 headers 没有发送..
在 alamofire 中实现 headers 的简单方法是什么?
提前致谢;-)
问候,
像其他参数一样在字典中设置headers,并在headers中传递。例如
let Auth_header = [ "Authorization" : token ]
Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: Auth_header, parameters: parameters)
您可以查看详情HTTP Basic Authentication
HTTP 基本身份验证
请求上的身份验证方法将在适当时自动向 NSURLAuthenticationChallenge 提供 NSURLCredential:
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)
}
根据您的服务器实现,授权 header 也可能是合适的:
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)
}
我已经按照你在第一条评论中所说的做了,但无论如何只有 headers 发送:
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)
已解决:问题是我没有在参数
中给出编码Alamofire.Manager.sharedInstance.request(.PUT, "url", headers: Auth_header, parameters: parameters, encoding: .JSON)
感谢EI队长