如何在 iOS App 中使用 Swift 發起 HTTP POST 請求?
要在 iOS 中發出 http 請求,我們要使用資料任務和會話。我們將建立配置、會話、URL、請求和資料任務物件。我們來看看將要執行的步驟。
首先,我們需要建立一個會話物件,具有預設配置。
let configuration = URLSessionConfiguration.default let session = URLSession(configuration: configuration)
然後需要建立我們需要型別的 URL 請求,它可以是 get、post、delete 或 put。在此示例中,我們看到的是“POST”型別。
let url = URL(string: URLString)
//let url = NSURL(string: urlString as String)
var request : URLRequest = URLRequest(url: url!)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")一旦我們建立了請求物件,就需要使用剛剛建立的 URL 執行資料任務。我們完整的 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 = "POST"
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 來發布一些資料。
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP