簡體   English   中英

Swift POST請求不起作用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM