ios - 在 swift 3 中使用 urlsession 在 http header 中发送承载 token 的问题

标签 ios json swift3 http-headers urlsession

我使用 urlsession 在 header 中发送不记名 token ,但我总是得到未经授权的结果。我看过服务器日志。我在那里得到 body 但没有标题。

    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)

关于ios - 在 swift 3 中使用 urlsession 在 http header 中发送承载 token 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44800293/

相关文章:

ios - 改变场景cocos2d

swift - 找出 UIKeyboard.frame 何时与其他框架相交?

ios - 核心数据结果分组依据

ios - 没有 "KeyboardName - HostAppName"方案的自定义键盘名称

php - 格式异常 : Unexpected end of input (at character 1)

java - 使用 Jackson 反序列化 JSON 实体的动态属性

javascript - 无法获得正确的 JSON 格式,相反我搞砸了

swift3 - 更改为 Swift 3 后发生突变运算符错误,已研究问题,但无法解决

ios - XCUIApplication 仅适用于 iOS 9.0 或更新版本,swift3

ios - 如何在 UICollectionView 中隐藏一个部分