我已经为基本身份验证实现了这段代码,有时候第一次没有工作:
func doRequestWithBasicAuth(completion : (success : Bool, html: String?, error : NSError?) -> Void) {
if let user = self.user {
let loginString = NSString(format: "%@:%@", user.login!, user.pwd!)
let loginData: NSData = loginString.dataUsingEncoding(NSUTF8StringEncoding)!
let base64LoginString = loginData.base64EncodedStringWithOptions(nil)
let url = NSURL(string: user.service!.getURL())
let request = NSMutableURLRequest(URL: url!)
request.HTTPMethod = "POST"
request.setValue("Basic \(base64LoginString)", forHTTPHeaderField: "Authorization")
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue()) {(response, data, error) in
if error == nil {
let htmlString = NSString(data: data, encoding: NSUTF8StringEncoding)
completion(success: true, html: htmlString as? String, error: nil)
} else {
completion(success: false, html: nil, error: error)
}
}
} else {
completion(success: false, html: nil, error: NSError())
}
}
此方法附加到按钮,因此在第一次点击时我收到此错误:
BASIC AUTH ERROR:错误域= NSURLErrorDomain代码= -1012" 操作无法完成。 (NSURLErrorDomain错误-1012。)" 的UserInfo = 0x7bad5770 {NSErrorFailingURLKey = HTTPS:///auth/Logon.do, NSErrorFailingURLStringKey = HTTPS:///auth/Logon.do, NSUnderlyingError = 0x7b9c47f0"操作无法完成。 (kCFErrorDomainCFNetwork错误-1012。)"}
第二次点击时,通话工作正常......我无法理解为什么..我打印用户登录,psw和网址:两次通话都是一样的..
有什么想法吗?