使用 swift 中的 urlsession 在 http header 中发送不记名令牌的问题 3
Issue with sending bearer token in http header using urlsession in swift 3
我在 header 中使用 urlsession 发送不记名令牌,但我总是得到未经授权的结果。我看过服务器日志。我得到 body 但没有 header.
let key = UserDefaults.standard.object(forKey: "loginKey") as! String
print(key)
let url = NSURL(string: baseurl+"***")
let request = NSMutableURLRequest(url: url! as URL)
request.httpMethod = "GET"
request.addValue("Bearer " + key, forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request as URLRequest)
{(data,response,error) -> Void in
if error != nil
{
print(error?.localizedDescription as Any)
return
}
do
{
let json = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary
print(json)
}
catch let error as NSError
{
print(error.localizedDescription)
}
}
task.resume()
我也试过了request.setValue("Bearer " + key, forHTTPHeaderField: "Authorization")
试试这个:
var sessionConfig = URLSessionConfiguration.default
var authValue: String? = "Bearer \(key)"
sessionConfig.httpAdditionalHeaders = ["Authorization": authValue ?? <#default value#>]
var session = URLSession(configuration: sessionConfig, delegate: self as? URLSessionDelegate, delegateQueue: nil)
我在 header 中使用 urlsession 发送不记名令牌,但我总是得到未经授权的结果。我看过服务器日志。我得到 body 但没有 header.
let key = UserDefaults.standard.object(forKey: "loginKey") as! String
print(key)
let url = NSURL(string: baseurl+"***")
let request = NSMutableURLRequest(url: url! as URL)
request.httpMethod = "GET"
request.addValue("Bearer " + key, forHTTPHeaderField: "Authorization")
let task = URLSession.shared.dataTask(with: request as URLRequest)
{(data,response,error) -> Void in
if error != nil
{
print(error?.localizedDescription as Any)
return
}
do
{
let json = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! NSDictionary
print(json)
}
catch let error as NSError
{
print(error.localizedDescription)
}
}
task.resume()
我也试过了request.setValue("Bearer " + key, forHTTPHeaderField: "Authorization")
试试这个:
var sessionConfig = URLSessionConfiguration.default
var authValue: String? = "Bearer \(key)"
sessionConfig.httpAdditionalHeaders = ["Authorization": authValue ?? <#default value#>]
var session = URLSession(configuration: sessionConfig, delegate: self as? URLSessionDelegate, delegateQueue: nil)