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

时间:2016-08-09 23:28:02

标签: ios swift curl afnetworking

我的cURL请求结构如下:

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

我构建了数据参数:

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

然后使用AFNetworking进行POST。

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

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

1 个答案:

答案 0 :(得分:2)

了解到某些内容,-u--user与基本身份验证相同。你可以通过像这样的授权标题传递用户名和密码,其中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
    })
}