Swift 相当于 Python requests.session()?

标签 swift request

在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

它是这样工作的。 您在请求 header 中附加 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()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47971815/

相关文章:

Swift 如何显示警报以请求照片库的权限?

node.js - Express 中的查询参数被提取?

php - 如何模拟HTTP请求?

java - 如何在 Java servlet 方法 init() 中获取本地主机和端口?

Swift 字符串未存储在结构中

ios - 由于 AVCaptureConnection 上不可用的 PixelFormat 类型,应用程序终止

ios - 在今天的扩展中创建记录并在应用程序中更新记录时的更改在今天的扩展中不可见

ios - 设置 Controller 时 NSFetchedResultsController 崩溃

swift - 如何为提示从图库或相机胶卷中拍照的按钮创建警报 View ?

python - 如何通过 curl 请求将图像发送到 Flask 服务器