我試圖瞭解xcode 8 swift 3中的post請求的過程。如何在xcode 8 swift 3中將字段值傳遞爲字符串類型?
我設法通過將值添加到「paramString」來手動發佈數據。
我的問題是,如果輸入數據來自textfield如何傳遞數據?
我把它命名爲usernameTxt和passwordTxt。如何使用下面的代碼將這些值傳遞給PHP MySQL?
「paramString」將是如果視圖控制器有多個文本字段輸入到Web服務?
到目前爲止我的代碼如下
import UIKit
class ViewController: UIViewController {
@IBOutlet var usernameTxt: UITextField!
@IBOutlet var passwordTxt: UITextField!
@IBOutlet var loginButton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func sendData(_ sender: Any) {
data_request("http://localhost/send.php")
}
func data_request(_ url:String)
{
let name = usernameTxt.text
let pass = passwordTxt.text
let url:NSURL = NSURL(string: url)!
let session = URLSession.shared
let request = NSMutableURLRequest(url: url as URL)
request.httpMethod = "POST"
let paramString = "data=" + name!
// let paramString = "data=" + name! + "data2=" + pass! //this line does not work
request.httpBody = paramString.data(using: String.Encoding.utf8)
let task = session.dataTask(with: request as URLRequest){
(data, response, error) in
guard let _:NSData = data as NSData?, let _:URLResponse = response, error == nil else {
print("Error")
return
}
if let dataString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue){
print(dataString)
}
}
task.resume()
}
}
你可能想看看API refernce爲['UITextField'(https://developer.apple.com/reference/uikit/uitextfield) – MadProgrammer
感謝您的答覆,:)。 。我仍然試圖理解這個概念和流程。 。同時,也許有人可以快速回答如何將這些usernameTxt,passwordTxt值分配給「let StringParam」..上面的代碼,只需要最後一次觸摸。 – AlotJai
它看起來像我只能傳遞一個字符串變量像這樣let name = usernameTxt.text,讓paramString =「data =」+ name! 。我不知道如何傳遞這兩個值。 – AlotJai