2017-06-28 19 views
2

我使用urlsession在头中发送不记名令牌,但我总是得到未经授权的结果。我看过服务器日志。我在那里得到身体,但没有头。使用urlsession在swift中发送http头中的无记号令牌问题3

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) 
+0

非常感谢你。它现在工作。 –

+1

还有一个问题,您的解决方案不适用于GET方法 –