如何在iOS/iPhone中訪問RESTful服務?
為了在swift中訪問REST API,我們需要使用swift原生網路方式(即使用URL會話和資料任務)完成一系列步驟。
Rest代表表現層狀態轉移,它定義了一組要由Web服務使用的約束。在swift中,我們可以透過以下方式訪問Web服務。
首先,我們需要建立一個具有預設配置的會話物件。
let configuration = URLSessionConfiguration.default let session = URLSession(configuration: configuration)
然後,我們需要建立一個我們需要的型別的URL請求,它可以是get、post、delete或put。在這個例子中,我們看到的是“GET”型別。
let url = URL(string: URLString)
//let url = NSURL(string: urlString as String)
var request : URLRequest = URLRequest(url: url!)
request.httpMethod = "GET"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")建立請求物件後,我們需要使用上面建立的URL執行dataTask。這是我們完整dataTask方法現在應該的樣子。
let dataTask = session.dataTask(with: url!) {
data,response,error in
guard let httpResponse = response as? HTTPURLResponse, let receivedData = data
else { print("error: not a valid http response")
return
}
switch (httpResponse.statusCode) {
case 200: //success response.
break
case 400: break
default: break
}
}
dataTask.resume()現在我們可以將其嵌入到一個函式中並在我們的程式碼中使用它。
func hitAPI(_for URLString:String) {
let configuration = URLSessionConfiguration.default
let session = URLSession(configuration: configuration)
let url = URL(string: URLString)
//let url = NSURL(string: urlString as String)
var request : URLRequest = URLRequest(url: url!)
request.httpMethod = "GET"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
let dataTask = session.dataTask(with: url!) {
data,response,error in
// 1: Check HTTP Response for successful GET request
guard let httpResponse = response as? HTTPURLResponse, let
receivedData = data
else {
print("error: not a valid http response")
return
}
switch (httpResponse.statusCode) {
case 200:
//success response.
break
case 400:
break
default:
break
}
}
dataTask.resume()
}注意 - 您可能需要在info.plist檔案中允許傳輸安全異常才能訪問某些API。
此示例未顯示任何輸出,因為需要API才能獲取一些資料。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP