快速向 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】:你可以试试Alamofire
和SwiftyJSON
这个组合。
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 发送和检索数据的主要内容,如果未能解决你的问题,请参考以下文章