2017-06-28 3 views
2

J'envoie un jeton de support dans l'en-tête en utilisant l'URL, mais le résultat est toujours non autorisé. J'ai vu le journal du serveur. Je reçois le corps là mais pas en-tête.Problème lié à l'envoi d'un jeton de support dans l'en-tête http à l'aide de la fonction d'adresse dans swift 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() 

J'ai aussi essayé request.setValue("Bearer " + key, forHTTPHeaderField: "Authorization")

Répondre

1

Essayez ceci:

 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

Merci beaucoup. Cela fonctionne maintenant. –

+1

Il existe un autre problème, votre solution ne fonctionne pas pour la méthode GET –