[英]Swift POST Request not working
我使用NodeJS設置了該服務器,可以接收名稱和電子郵件,並讓我知道它們是否匹配,還可以讓我知道接收到的數據是否無效。
這是我的代碼迅速:
func post() {
let parameters = [
"email": "windvaan@live.nl",
"password": "Dittoenbram1234!"
]
let url = NSURL(string: "http://localhost:3000/login")
var request = URLRequest(url: url! as URL)
request.httpMethod = "POST"
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameters, options: JSONSerialization.WritingOptions.prettyPrinted) else {
return
}
request.httpBody = httpBody
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
} catch {
print(error.localizedDescription)
}
}
}.resume()
}
當我調用此函數時,服務器會說數據無效,但我作為參數輸入的數據是有效的。 我認為這與該功能和參數有關,因為我的服務器工作正常。 提前謝謝!
我想通了,我不得不在我的快速文件中添加:
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.addValue("application/json", forHTTPHeaderField: "Accept")
根據您的參數值,它不是有效的JSON格式。 當您打印參數值時,它將打印-[“” password“:” Dittoenbram1234!“,” email“:” windvaan@live.nl“],這是無效的。
您需要使用以下格式-{email =“ windvaan@live.nl”; 密碼=“ Dittoenbram1234!”;}
為了這
取代這個-
let parameters = [
"email": "windvaan@live.nl",
"password": "Dittoenbram1234!"
]
有了這個 -
let parameters: NSDictionary = [
"email": "windvaan@live.nl",
"password": "Dittoenbram1234!"
]
希望這會幫助你。 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.