2017-07-19 16 views
0

私はちょうど質問したいと思います。なぜ私のPOSTリクエストは送信されないのですか?コードは完全に健全なようですが、Xcodeはエラーを表示しません。私はスイフト3を使用しています。あなたは私を助けてくれますか?ありがとう!私のコードは以下、私の投稿URLはhereです。再度、感謝します!POSTリクエストがスウィフトで送信されていない

@IBAction func onClick(_ sender: Any) { 
    let username = Username.text 
    let password = Password.text 

    let request = NSMutableURLRequest(url: url) 
    request.httpMethod = "POST" 

    let params = ["username": username, "password": password] as Dictionary<String, AnyObject> 

    do { 
     try request.httpBody = JSONSerialization.data(withJSONObject: params, options: .prettyPrinted) 
    } catch { 
     print("Error") 
    } 

    request.addValue("application/JSON", forHTTPHeaderField: "Content-Type") 

    URLSession.shared.getAllTasks { (openTasks: [URLSessionTask]) in 
     NSLog("open tasks: \(openTasks)") 
    } 


} 

答えて

1

あなたはURLSession.shared.dataTask(with:completionHandler:)を使用する必要があります。また、NSMutableRequestは使用しないでください。ネイティブのSwiftバージョンURLRequestを使用してください。

@IBAction func onClick(_ sender: Any) { 
    let username = Username.text 
    let password = Password.text 

    var request = URLRequest(url: url) 
    request.httpMethod = "POST" 

    let params = ["username": username, "password": password] as Dictionary<String, AnyObject> 

    do { 
     try request.httpBody = JSONSerialization.data(withJSONObject: params, options: .prettyPrinted) 
    } catch { 
     print("Error") 
    } 

    request.addValue("application/JSON", forHTTPHeaderField: "Content-Type") 

    URLSession.shared.dataTask(with: request, completionHandler: { data,response, error in 
     if let existingError = error { 
      //handle error 
     } 
     //handle response and/or data 
    }).resume() 
} 
3

あなたは使用する必要があります。

let task = session.dataTaskWithRequest(urlRequest, completionHandler: { (data, response, error) in 
    // do stuff with response, data & error here 
    print(error) 
    print(response) 
}) 
task.resume() 

Get more info here

関連する問題