【问题标题】:Swift equivalent of Python requests.session()?Swift 相当于 Python requests.session()?
【发布时间】:2017-12-25 20:28:32
【问题描述】:

在python中,我们可以像这样对请求进行身份验证

session = requests.session()
session.auth = ("xxxxxxxxxxxxxxxx", "xxxxxxxxxxxxxxxx")
r = session.get('https://example.com/api/v1/method').json()

我们如何快速做到这一点?这个有内置类吗?

【问题讨论】:

    标签: swift request


    【解决方案1】:

    这是一种常见的授权功能,称为基本访问身份验证

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization https://en.wikipedia.org/wiki/Basic_access_authentication

    它是这样工作的。 您在请求标头中为值“授权”附加 base64 编码的字符串。这个字符串有这种格式:

    所以,对于 swift 4 你必须这样使用:

    let username = "user"
    let password = "pass"
    let loginString = String(format: "%@:%@", username, password)
    let loginData = loginString.data(using: .utf8)!
    let base64LoginString = loginData.base64EncodedString()
    
    var request = URLRequest(url: url)
    request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
    

    这里有详细的例子

    https://stackoverflow.com/a/24380884/1979882

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 2020-09-11
      • 1970-01-01
      • 2017-02-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多