Swift相当于Python的requests.session()?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift相当于Python的requests.session()?相关的知识,希望对你有一定的参考价值。

在python中,我们可以验证这样的请求

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

我们怎样才能迅速做到这一点?这是否有内置类?

答案

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

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

它以这种方式工作。在请求标头中附加base64编码的字符串,用于值“Authorization”。这个字符串有这样的格式:

所以,对于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

以上是关于Swift相当于Python的requests.session()?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Python 中的请求模块中完全删除任何日志记录

CoreData - 相当于使用带有示例的类别 - Swift

swift中的CAGradientLayer相当于啥?

Swift 相当于我的 Objective-C 块

Firestore 是不是有相当于 Firebase 的 childAdded(使用 swift)的监听器?

Swift 相当于 Ruby 的 Concurrent::Event?