Tag: alamofire

提手休息Api Menggunakan Alamofire di Swift 4

海,肯巴利·拉吉… Dalam beberapa bulan terakhir saya sempat disibukan dengan pekerjaan kantor,jadi belum dapat kesempatan untuk mengupdate artikel di medium🙁 Pada kesempatan kali ini saya阿肯色曼巴哈斯Tentang编程di IOS menggunakan bahasa pemrograman Swift (bosen android mulu:p)。 Oke,pada教程ina saya menggunakan IDE Xcode 10和Swift 4。 1.Buka XCode dan buat项目baru。 2.Tambahkan pod Alamofire dan SwiftyJSON Karena saya menggunakan 库外部 yaitu Alamofire和 SwiftyJSON […]

领域与Alamofire融为一体

本文最初由Christoph Auer发表在我们的博客上 我们想向您介绍如何在Hyphe iOS应用程序中使用Swift库Alamofire , Realm和ObjectMapper ,以便在Hyphe API和我们的iOS客户端之间建立优雅而简单的同步。 Alamofire 领域 AlamofireObjectMapper 对象映射器 在Hyphe iOS应用程序中, Realm扮演着核心角色。 对于我们而言,重要的是,Hyphe作为通讯录,具有理想的脱机功能。 我们希望向用户交付一个无延迟且几乎在任何地方都可用的应用程序。 因此,应用程序从Hyphe API提取的来自用户的所有相关数据都将本地存储在Realm数据库中。 该应用程序分为两个部分,前端和后端。 在前端不使用Alamofire 。 所有相关数据都可以通过Realm数据库获得。 后端负责Realm数据库与我们的API之间的同步。 另外,何时修改了Realm数据库,后端就会通知限制性展示者,反之亦然。 此外,将通知后端以使Hyphe-API保持最新。 通过这种设计,演示者非常小巧。 在本文中,我们将通过以下示例扩展后端库之间的交互。 我们从一个简单的示例开始,然后逐步将其升级为最终代码。 GET请求传递以下数据: GET:/ books [ { “id” : 1, “title” : “Book A”, “autor” : “Autor 1”, “genre” : “Drama” }, { “id” : 2, “title” : […]

{error =“invalid_request”; “error_description”=“必需的参数丢失:grant_type”; }迅速

I am trying with this but every time I will get { error = "invalid_request"; "error_description" = "Required parameter is missing: grant_type"; } Request String: let headers = [ "Content-Type" : "application/x-www-form-urlencoded"] let urlString = "https://accounts.google.com/o/oauth2/token?" Alamofire.request(urlString, method: .post, parameters: ["grant_type":"authorization_code","code":"4/FAOYR1mQo1lN1Gdg9jDnigwZ8RP76NUrqPbYZlMCSP28","client_id":"387376833747-12pbtud9tepr4di0insdhc0d4qpf5e9m.apps.googleusercontent.com","client_secret":"xOacVhLavM9fH8SpOK4I2dRJ","redirect_uri":"https://stackoverflow.com"], encoding: JSONEncoding.default, headers : headers) .responseJSON { response in print(response) print(response.result) } 也尝试传递这样的请求参数,但仍然不适合我。

Alamofire完成工作后如何加载视图?

我的问题: 我试图加载数据从服务器,通过Alamofire之前,SubViewController加载其视图。 在编写代码之后,我没能解决Alamofire的Async Feature的问题。 在Alamofire完成工作之前,视图总是被加载到SubViewController中。 部分我的代码: ParentViewController: 通过PrepareForSegue()引导到SubViewController的方式。 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { if segue.identifier == "CellDetailSegue" { if let indexPaths = self.dateCollectionView.indexPathsForSelectedItems() { let subViewController = segue.destinationViewController as! SubViewConroller } } SubViewController: testing数据是否已经由其viewDidLoad() print()中的print()加载,并通过viewWillAppear() dataRequest()加载数据。 class SubViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { var availablePeriods401 = [String]() var availablePeriods403 = [String]() var availablePeriods405 = […]

显示来自非UI类的警报

我在我的应用程序中使用Alamofire,并希望在请求出现错误(例如错误的URL)时显示警报等。 我有这个函数在一个单独的类中,因为它在应用程序的页面之间共享。 Alamofire.request(.GET, api_url) .authenticate(user: str_api_username, password: str_api_password) .validate(statusCode: 200..<300) .response { (request, response, data, error) in if (error != nil) { let alertController = UIAlertController(title: "Server Alert", message: "Could not connect to API!", preferredStyle: UIAlertControllerStyle.Alert) alertController.addAction(UIAlertAction(title: "Dismiss", style: UIAlertActionStyle.Default,handler: nil)) self.presentViewController(alertController, animated: true, completion: nil) } } 由于Alamofireasynchronous工作,我需要做错误检查然后(除非你build议否则),因为那么我想操纵结果,如果URL是错误的,那么它可以变得混乱。 毫不奇怪的 self.presentViewController(alertController, animated: true, completion: nil) […]

Alamofire参数只接受?

我正在使用Alamofire,它是Swift中的HTTPnetworking库,并且正在尝试使用下面的json作为请求中的参数进行PUT请求,但是似乎它不像版本字段,因为它里面有另一个字典的。 有没有办法解决这个问题? var reqJson = [ "asdf": "sdfs", "lsd": "asdf", "asdf" : "coc", "qwer": "sdf", "cvc": "kljb", "xcv": "qwe", "versions": [ [ "version": "\(version)", "component": "\(compName)" ] ] ] Alamofire.request(.PUT, baseURL + "/cli/applicationProcessRequest/request", parameters: reqJson, encoding: .JSON).authenticate(user: _user, password: _passwd).responseJSON{ (_,_,data,error) in completionHandler(error) } 这似乎是这样的,因为参数应该是[String:Anyobject],但不是另一个字典一个Anyobject?

Alamofire请求不被执行

有些奇怪的事情正在发生。 我有两个ViewControllers A和B. 在他们两个我使用下面的命令导入Alamofire import Alamofire 问题:我在这两个控制器中调用完全相同的Alamofire请求。 在VC – A它执行,在VC – B – 只是不执行..没有任何错误或任何东西。 当我使用断点进行debugging时,由于某种原因,整个Alamofire代码被跳过了。 似乎无法弄清楚为什么。 以下是我的Alamofire代码(在控制器A和B中这是相同的) override func viewDidLoad() { super.viewDidLoad() print("check1") Alamofire.request(.GET, hubsURL).response { request, response, result, error in print(response) print("check2") } print("check"3) } 上面的代码在执行ViewController A时打印响应,而不是View Controller B.对于viewcontroller B,其他命令只执行Alamofire不执行。在上面的代码中 – “Check 1”和“Check 3”被打印到控制台但不是“检查2”(VC-B)。

Alamofire处理特定的错误代码

我的目标是能够在我的最终竞争处理程序被调用之前捕捉到Alamofire请求(JSON,string)中的任何响应,并且如果它是特定的响应代码,那么我将对所有响应进行相同处理。 我做了一个Alamofire的包装,让我做我需要的具体请求(login请求等),并在那里我也收到了答复,但我不想对待我的每个具体要求全球常见的错误代码。 只是将Alamofire请求分类并在那里进行治疗似乎更自然。 但是,当我将子类Alamofire请求类,为了所有其他工作,我也必须inheritanceAlamofirepipe理器,并专门覆盖返回pipe理器内的请求的方法。 而这是不可能的,因为在这个方法里超类使用它自己的私人东西。 我应该怎么做,以便做出更干净和更好的解决scheme?

禁用cachingAlamofire iOS

我试图使用Alamofire进行iOS请求时禁用caching。 当我尝试向服务器发出请求,然后以不同的用户身份进行身份validation时发出请求,我得到一个304状态码。 我试过这个链接的一切,所有这些都不工作或导致错误。 后端使用Express.js处理请求,并使用Passport.js进行用户身份validation。 在Alamofire和iOS应用程序上禁用caching的正确方法是什么? 还是有什么我可以做,以防止这种情况发生在后端? 无论哪种方式,我不太确定下一步如何前进。 更新 看了这个问题多一点,看起来Alamofire发送完全相同的authentication信息,即使是传递到authentication部分的信息是完全不同的。 但是,如果我等几分钟再次尝试请求,它会更新到正确的身份validation信息。 即使您在新请求中更新身份validation信息,也几乎可以将身份validation信息caching几分钟。 所以你不能改变authentication信息,直到每几分钟清除一次。 这使得更less的意义。 更新2 以下是我的代码 func reloadData() { print("Reloading data!!") let headers: HTTPHeaders = [ "testvalidationtoken": "test", ] let keychain = KeychainSwift() let email: String = keychain.get("email")! let password: String = keychain.get("password")! var configuration = URLSessionConfiguration() configuration.urlCache = nil var manager : SessionManager = SessionManager(configuration: […]

如何检测到所有30个Alamofire请求都已被回应?

我正在制作一个应用程序,通过将数据显示在图表中,显示过去30天内两种货币之间的汇率。 我正在使用Alamofire和SwiftyJSON来parsing响应。 我使用的API是http://fixer.io 。 在我的视图控制器,我有这个方法称为getRate ,将填充一个字典( [Date: Double] )被称为rates 。 getRate将在viewDidLoad中调用,定义如下: func getRate() { let baseCurrency = UserDefaults.standard.string(forKey: "baseCurrency") let formatter = DateFormatter() formatter.dateFormat = "yyyy-MM-dd" for date in last30Days { let dateString = formatter.string(from: date) let url = "https://api.fixer.io/\(dateString)?base=\(baseCurrency!)&symbols=\(self.currency!)" Alamofire.request(url).responseString { [weak self] response in if let _ = response.error { return } let […]