Swift 将 cURL -用户密钥转换为 json 用于 AFNetworking

Swift convert cURL -user key to json for AFNetworking

我的 cURL 请求结构如下:

curl -X POST http://host.com \
    --data token=myToken \
    --data foo=myFoo \
    --user myUsername:myPassword

我构造数据参数:

let params = ["token" : myToken, "foo" : myFoo]

然后 POST 使用 AFNetworking。

manager.POST("http://host.com", parameters: params, progress: nil, success: { task, responseObject in
        //stuff
        }, failure: { operation, error in
        //error stuff    
    })

但是如何将 cURL --user 键中的必要参数添加到此请求?

学习了,-u--user与Basic auth一样。您可以像这样通过授权 header 传递用户名和密码,其中 base64Encode() 是我自己的字符串扩展名,用于转换为 base64。

完全转换:

curl -X POST http://host.com \
--data token=myToken \
--data foo=myFoo \
--user myUsername:myPassword

会是这样:

let params = ["token" : myToken, "foo" : myFoo]

if let base64 = "myUsername:myPassword".base64Encode() {

    manager.requestSerializer.setValue("Basic " + base64, forHTTPHeaderField: "Authorization")

    manager.POST("http://host.com", parameters: params, progress: nil, success: { task, responseObject in
        //stuff
        }, failure: { operation, error in
            //error stuff
    })
}