Tag: alamofire

Swift 3-从主线程更新UI

我想在后台线程中加载数据,并在主线程上更新tableview / UI。 根据这里所说的关于线程的内容,我想知道下面的代码是否可以解决这个问题。 我试图加载更多的数据作为用户滚动到一个特定的索引,并希望确保UI不冻结由于线程。 谢谢! func loadMore () { guard !self.reachedEndOfItems else { return } self.offset = self.offset! + 10 print("load more offset: \(self.offset)") var start = 0 var end = 0 isPullToRefresh = false let userCreds = UserDefaults.standard var getReqString = "" if userCreds.bool(forKey: "client_journal") == true || userCreds.bool(forKey: "user_journal") == true { […]

Alamofire::FAILURE:错误域= NSURLErrorDomain代码= -999“取消”

我要连接的服务是使用自签名证书。 对于开发的目的,我不想validation那个链。 与Alamofire一起使用Swift 3 4.相应地修复ATS: <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>url.com</key> <dict> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> <key>NSExceptionRequiresForwardSecrecy</key> <false/> <key>NSIncludesSubdomains</key> <true/> </dict> </dict> </dict> 代码连接并禁用评估。 let serverTrustPolicies: [String: ServerTrustPolicy] = [ "example.domain.com": .pinCertificates( certificates: ServerTrustPolicy.certificates(), validateCertificateChain: false, validateHost: true ), "sub.url.com": .disableEvaluation ] let sessionManager = Alamofire.SessionManager( serverTrustPolicyManager: ServerTrustPolicyManager(policies: serverTrustPolicies) ) let headers = ["Authorization": "Basic /*…*/"] sessionManager.request("https://sub.url.com/path", headers: […]

在Swift中用AlamoFire创build一个通用的方法

我正在使用AlamoFire进行API调用,并且在我的项目中有这样的东西: static func login(userName: String, password: String) -> User { let parameters = ["userName": userName , "password": password] let user = User() Alamofire.request(.POST, "myserver.com/login", parameters: parameters, encoding: .JSON) .validate() .responseObject { (response: Response<User, NSError>) in switch response.result { case .Success(let value): user.valueHandle?(value) case .Failure(let error): user.errorHandle?(error) } } return user } (请参阅https://stackoverflow.com/a/37949671/406322关于如何使用上面的代码)。 问题是我有很多除了用户以外的对象,只有对象types不同的代码重复,所以我试图创build一个通用的方法,像这样: static func […]

如何将json数据从alamofire转换为swift对象

嗨在那里即时使用swift 1.1在Xcode 6.2中快速的照片查看器应用程序 我有麻烦试图从alamofire转换json响应swift对象。我已经使用swiftyjson库,但似乎有一个兼容性issues.here是我的模型类 import Foundation struct Photo { var name: String var filename :String var notes: String } 这里是我的viewController import UIKit class ImageViewerTableViewController: UITableViewController { var photos = [Photo]() override func viewDidLoad() { super.viewDidLoad() Alamofire.request(.GET, "http://httpbin.org/get") .responseJSON { (_, _, JSON, _) in } } 如何在这种情况下将json映射到swift对象 谢谢 。

ResponseSerializer'不能使用Swift 3调用非函数types'NSHTTPURLResponse?'的值

在更新到Xcode 8 beta 6之前,我一直在使用下面的代码没有问题。它类似于Alamofire存储库的这个例子 。 今天早上,我更新了我的Alamofire库到最新的swift3分支,它现在与swift3兼容。它显示错误: Cannot call value of non-function type 'HTTPURLResponse?' 这里也存在类似的问题,但不是基于当前版本的Swift和Alamofire。 据我所知,这个错误是因为它认为我正在尝试返回Request属性response而不是函数response(responseSerializer: <T>, completionHandler: <(Response<T.SerializedObject, T.ErrorObject>) -> Void>) ,它认为这是因为在传递给函数的responseSerializer或completionHandler中的types错误。 我怎样才能调整这个代码,使其与函数声明和编译器兼容? 我添加@escaping到completionHandler来纠正错误。 import Foundation import Alamofire import SwiftyJSON extension Alamofire.Request { public func responseObject<T: ResponseJSONObjectSerializable>(_ completionHandler: @escaping (Response<T, NSError>) -> Void) -> Self { let responseSerializer = ResponseSerializer<T, NSError> { request, res, data, […]

Alamofire错误代码= -1000“URL不指向文件URL”

有问题从我正在开发的iOS应用程序上传图像到我的服务器。 我正在使用Alamofire和一个UIImagePickerController 。 在didFinishPickingMediaWithInfo委托方法内我保存用户从名为self.imageNSURL的variables中的info[UIImagePickerControllerReferenceURL]select作为NSURL的文件。 通过这个Alamofires上传multipartFormData方法(几乎是从他们的文档标准复制和粘贴) Alamofire.upload( .POST, URLString: "http://app.staging.acme.com/api/users/\(id)/picture", multipartFormData: { multipartFormData in multipartFormData.appendBodyPart(fileURL: self.imageNSURL, name: "image") }, encodingCompletion: { encodingResult in switch encodingResult { case .Success(let upload, _, _): upload.responseJSON { request, response, JSON, error in println(JSON) } case .Failure(let encodingError): println(encodingError) } } ) 我得到的错误是 Error Domain=com.alamofire.error Code=-1000 "The operation couldn't be completed. […]

如何在Alamofire中设置requestSerializer

我目前正在swift开展一个项目。 我使用Alamofire REST API但为了使其工作,我需要在requestSerializer传递参数 在AFNETWORKING AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager]; manager.requestSerializer = [AFJSONRequestSerializer serializer]; 但是我找不到Alamofire东西。 我是新来的,请帮助我。

Alamofire POST请求进展

我正在使用Alamofire来执行POST请求。 由于此POST请求可能需要一段时间,我想跟踪进度并将其显示为ProgressView。 Alamofire.request(.POST, ApiLink.create_post, parameters: parameters, encoding: .JSON) .progress { (bytesRead, totalBytesRead, totalBytesExpectedToRead) -> Void in println("ENTER .PROGRESSS") println("\(totalBytesRead) of \(totalBytesExpectedToRead)") self.progressView.setProgress(Float(totalBytesRead) / Float(totalBytesExpectedToRead), animated: true) } .responseJSON { (_, _, mydata, _) in println(mydata) } 但是,我注意到.progress块只在post请求结束后才被调用,而不是多次调用来实际跟踪进度。 println(“ENTER .PROGRESSS”)只被调用一次(最后) 我怎样才能让.progress与Alamofire.request POST一起工作? 另外:我的参数包括一个base64编码的图像string。 我正在使用后端Ruby on Rails来处理图像。 这是需要相当一段时间的过程。

无法将“__NSArrayI”(0x10df73c08)types的值转换为“NSDictionary”(0x10df74108)

let url = "http://xyz/index_main.php?c=webservices&a=get&e=007" Alamofire.request(url, method: .post, parameters: nil, encoding: JSONEncoding.default) .responseJSON { response in print(response) //to get status code if let status = response.response?.statusCode { switch(status){ case 201: print("example success") default: print("error with response status: \(status)") } } //to get JSON return value if let result = response.result.value { let JSON = result as! […]

Alamofire无法正常工作 – Tuple发行不同数量的元素

使用Xcode 7.1 在Alamofire responseJSON请求中我不能放4个参数。 下面是代码 let url2 = "https://httpbin.org/get" Alamofire.request(.GET, url2).responseJSON{ request, response, JSON, error in print(JSON) } 我得到这个错误:元组types'(NSURLRequest?,NSHTTPURLResponse?,结果)'(又名'(可选,可选,结果)')和'(_,_,_,_)'有不同数量的元素(3与4) 如果我从responseJSON中删除“ 错误 ”参数并运行它…应用程序生成,但没有JSON打印在控制台上.. let url2 = "https://httpbin.org/get" Alamofire.request(.GET, url2).responseJSON{ request, response, JSON in print(JSON) } 控制台输出 没有打印JSON。 如果您从代码中访问示例url ,您将看到JSON。 我遵循GitHub的指示,但不工作