如何将访问令牌传递给Alamofire?
我正在尝试在Alamofire
传递访问令牌,但在Web上的各种方法中感到困惑。
以下是我们需要使用的方法。
let todosEndpoint: String = "https:url......." let headers = [ "Authorization": "Bearer \(token!)", "Content-Type": "application/X-Access-Token" ] let Auth_header = [ "Authorization" : tokenString! ] Alamofire.request(todosEndpoint, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: Auth_header) .responseJSON { response in print("response.request \(response.request)") // original URL request print("response.response \(response.response)") // HTTP URL response print("response.data \(response.data)") // server data print("response.result \(response.result)") print("response \(response)") } }
要么
let aManager = SessionManager() aManager.session.configuration.httpAdditionalHeaders = [ "Authorization": "Bearer tokenString"]
要么
let headerss = [ "Authorization": tokenString]
要么
let aManager = SessionManager() aManager.session.configuration.httpAdditionalHeaders = [ "Authorization": "Basic tokenString"]
什么是传递访问令牌的正确方法?
你有没有试过这个,可以在Alamofire文档中find:
let headers: HTTPHeaders = [ "Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==", "Accept": "application/json" ] Alamofire.request("https://httpbin.org/headers", headers: headers).responseJSON { response in debugPrint(response) }
另一个例子是:
let user = "user" let password = "password" var headers: HTTPHeaders = [:] if let authorizationHeader = Request.authorizationHeader(user: user, password: password) { headers[authorizationHeader.key] = authorizationHeader.value } Alamofire.request("https://httpbin.org/basic-auth/user/password", headers: headers) .responseJSON { response in debugPrint(response) }
还有一种方法是:
let user = "user" let password = "password" let credential = URLCredential(user: user, password: password, persistence: .forSession) Alamofire.request("https://httpbin.org/basic-auth/\(user)/\(password)") .authenticate(usingCredential: credential) .responseJSON { response in debugPrint(response) }
我使用的是这样的:
let username = "Tuser" let password = "Tpassword" let credentialData = "\(username):\(password)".data(using: String.Encoding.utf8)! let base64Credentials = credentialData.base64EncodedString(options: []) let headers = ["Authorization": "Basic \(base64Credentials)"]
要么
let headers = [ "Authorization" : token ]
这可以通过以下方式使用Alamofire完成:
let url: String = "https:url......." var request = URLRequest(url: NSURL(string: url)! as URL) // Your request method type Get or post etc according to your requirement request.httpMethod = "POST" request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization") request.setValue("application/json", forHTTPHeaderField: "Content-Type") // Your required parameter in case of Post request let parameters: [String: Any] = ["paramter1": "vaue1"] request.httpBody = try! JSONSerialization.data(withJSONObject: parameters ) Alamofire.request(request).responseJSON { (responseObject) -> Void in // Your required functionality here }
- Swift – HTTP加载失败(错误代码:-1005 ),同时通过alamofire上传图片。
- 通过Swift 3和Alamofire 4 |上传带有JSON和自定义标题的照片/文件 iOS | 迅速
- 将对象追加到variables
- Swift 3.0迁移后的Alamofire错误:“在调用中额外的参数”(请求方法)
- 使用URLRequestConvertible在unit testing中链接错误
- Swift在debugging和发布模式下performance不同
- Swift 3-从主线程更新UI
- 使用Alamofire在iOS上使用证书固定的网络安全
- 在尝试parsingAlamofire中的结果之前,处理没有Internet连接错误