我改编自Ray Wenderlich的iOS Apprentice教程第4部分。
这段代码作为一个GET请求发送到我的Strongloop API,使用一个简单的数据库模型,但是:
1.这是可行的,但我不知道为什么可行,因为它没有调用任何方法来实际发送请求。
1.我看不出有什么办法可以把它变成一个POST请求。
我的问题是:如何执行POST请求?是以完全不同的方式完成的吗?
如果你需要更多的信息,请告诉我。
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func getFromDB() {
let url = urlWithSearchText("")
println("URL: '\(url)'")
if let jsonString = performGetRequestWithURL(url) {
println("Received JSON string '\(jsonString)'")
}
}
func urlWithSearchText(searchText: String) -> NSURL {
let escapedSearchText = searchText.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)!
let urlString = String(format: "http://localhost:3000/api/Tests", escapedSearchText)
let url = NSURL(string: urlString)
return url!
}
func performGetRequestWithURL(url: NSURL) -> String? {
var error: NSError?
if let resultString = String(contentsOfURL: url, encoding: NSUTF8StringEncoding, error: &error) {
return resultString
} else if let error = error {
println("Download Error: \(error)")
} else {
println("Unknown Download Error")
}
return nil
}
下面是一个图片的工作:
https://dl.dropboxusercontent.com/u/14464971/Images/Messages%20Image%281477993527%29.png
8条答案
按热度按时间nukf8bse1#
Swift 3及以上版本
获取
发布
xzlaal3s2#
下面是两种POST方法。这取决于你是想让它同步(其他的一切都要等到post方法完成)还是异步(POST方法在后台运行,其他方法并行运行)。
方法
使用它们
你可以这样称呼他们:
SWIFT 2.0
jmo0nnb33#
这是一个get方法。
wkftcu5l4#
此方法调用http请求。
因为Swift
String
没有这样的init签名。此方法将在项目中的某个位置编写为
extension
ofString
应该是这样的
5sxhfpxr5#
String(contentsOfUrl:encoding:error)初始化器在后台发出一个GET请求,并以指定编码的字符串形式返回内容。
发出请求的一种方法是创建一个NSURLConnection并使用NSMutablrURLRequest设置HTTP方法。使用NSMutableURLRequest,您可以创建一个NSURLConnection并使用委托立即启动它,或者您可以调用NSURLConnection.sendSynchronousRequest或NSURLConnection.sendAsynchronousRequest来发送请求。
xesrikrc6#
这是一个post方法。
hs1rzwqc7#
GET请求
发布请求
总是尝试检查HTTPURLResponse代码
mjqavswn8#
步骤:#1:APIRequest.swift
步骤:#2:URLSessionApiClient.swift
步骤:#3:AppError.swift
步骤:#4:NetworkClient.swift
步骤:#5:ViewController.Swift