在Alamofire请求中输入用户名和密码

3

我正在尝试使用Alamofire在我的iOS应用程序中进行GET请求,但我不知道如何输入我的用户名和密码。

成功运行的cURL命令是

curl -k -u user:pw https://url/cli/method

它返回了正确的JSON

对于Alamofire,我尝试了:

Alamofire.request(.GET, self.baseURL + method, parameters: params).responseJSON { (_, _, JSON, _) in
            println(JSON)

其中baseURL + method是https://url/rest/method

params为

let params = [
            "username" : self.username.text,
            "password" : self.password.text
        ]

但是当我尝试时,它显示:

NSURLConnection/CFURLConnection HTTP 加载失败 (kCFStreamErrorDomainSSL, -9813)

我做错了什么?


你确定在登录时使用GET吗? - Miknash
这不是一个登录请求,而是一个请求查看服务器上所有正在运行的应用程序。 - seongju
2个回答

7

显然,Alamofire 中有一个功能可以解决这个问题。我需要做...

Alamofire.request(.GET, self.baseURL + method, parameters: nil)
    .authenticate(user: self.username.text, password: self.password.text)
    .responseJSON { (_, _, JSON, _) in
        println(JSON) 
}

进行身份验证。


1
当证书存在问题时会出现此错误。我的猜测是它是无效的。不幸的是,目前Alamofire不支持覆盖无效证书(例如,AFNetworking可以这样做)。
请查看this线程以获取更多详细信息。

感谢您的快速回复。我对“无效”是什么意思以及为什么有人想要允许无效证书感到困惑。 - seongju
例如,Alamofire 将自签名证书视为无效,因此如果您自己签署了证书而不是认证机构,则会收到此错误。 - Michal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接