快速向 API 发送和检索数据

Posted

技术标签:

【中文标题】快速向 API 发送和检索数据【英文标题】:Sending And Retrieving data to API In swift 【发布时间】:2015-03-16 06:15:09 【问题描述】:

我已经使用委托方法从 API 读取数据...但我不明白如何将数据发送回 API

这是我从 API 读取数据的代码..

func getDataFromAPI()

    var strApi : String = "http://maps.googleapis.com/maps/api/directions/json?sensor=false&mode=transit&origin=woottonbridge+UK&destination=ashfordinternational+UK&arrival_time=1415358000&alternatives=true"
    var url  = NSURL(string: strApi)
    var request = NSMutableURLRequest(URL: url!)
    request.HTTPMethod = "GET"
    NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue(), completionHandler: (response : NSURLResponse! , data : NSData! , error : NSError!) -> Void in

   var error: AutoreleasingUnsafeMutablePointer<NSError?> = nil
    let jsonDictionary: NSDictionary! = NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers, error: error) as? NSDictionary
        if jsonDictionary != nil
        
           var arrayData : NSArray = jsonDictionary.objectForKey("routes") as NSArray
            println("\(arrayData[0])")
        
    )

【问题讨论】:

你为什么不使用 Alamofire 和 SwiftyJSON? 我只是在学习并为此制作演示,我只是有这个 API 可以使用,所以我正在使用..我不知道 SwiftyJSON 或其他.. 【参考方案1】:

你可以试试AlamofireSwiftyJSON这个组合。

import UIKit
import Alamofire
import Haneke

class MatchTableViewController: UITableViewController 

    var datas: [JSON] = []

    override func viewDidLoad() 
        super.viewDidLoad()

        Alamofire.request(.GET, "http://maps.googleapis.com/maps/api/directions/json?sensor=false&mode=transit&origin=woottonbridge+UK&destination=ashfordinternational+UK&arrival_time=1415358000&alternatives=true").responseJSON  (request, response, json, error) in
            if json != nil 
                println(json)
            
        
    

参考:http://blog.revivalx.com/2015/02/24/uicollectionview-tutorial-in-swift-using-alamofire-haneke-and-swiftyjson/

【讨论】:

【参考方案2】:

将 NSURLConnection 与 http 方法“POST”一起使用,您可以在请求的“BODY”内添加您想要发送到 API 的任何内容。

否则,正如 Dato 所说,您可以选择 Alamofire,始终是最佳选择:)

查看 - How to make an HTTP request in Swift?, How to create and send the json data to server using swift language

一切顺利

【讨论】:

以上是关于快速向 API 发送和检索数据的主要内容,如果未能解决你的问题,请参考以下文章

向 ROBLOX API 发送 https 请求时出错

无法使用快速js检索会话

如果通知在脱机时发送,Android是否可以检索FCM通知

向/从 Game Center 发送/检索分数对

应用程序升级到oracle 11g后,无法通过SOAP API Web服务检索数据

如果值是列表/数组,则从快速路由器中检索值