Проблема с отправкой токена носителя в заголовке http с помощью urlsession в swift 3
Я отправляю токен на предъявителя в заголовке, используя urlsession, но всегда получаю результат как несанкционированный. Я видел журнал сервера. Я получаю тело там, но не заголовок.
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")
1 ответ
Решение
Попробуй это:
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)