2015-11-17 91 views
0

我使用此代碼,POST JSON與斯威夫特

let username = usernameText.text 
let pass = passTxt.text 
let pass2 = pass2Txt.text 

let myUrl = NSURL(string: "http://192.168.1.6/ff/jsonsignup.php"); 
let request = NSMutableURLRequest(URL:myUrl!); 
request.HTTPMethod = "POST"; 
request.setValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type") 
request.setValue("application/json", forHTTPHeaderField: "Accept") 
let postString = "username=\(username)&password=\(pass)&c_password=\(pass2)"; 

request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding); 

let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { 
    data, response, error in 

    if error != nil 
    { 
     print("error=\(error)") 
     return 
    } 

    print("response = \(response)") 

    let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding) 
    print("responseString = \(responseString)") 


      let myJSON = try!NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as! NSDictionary 

     if let parseJSON = myJSON as NSDictionary! { 

     var firstNameValue = parseJSON["username"] as? String 
     print("Username: \(firstNameValue)") 
    } 

} 

task.resume() 

responseString

Username: {"username":"Optional(\"ttttt\")"} 

可選額外添加詞組

我去了,因爲我想獲得發送

{"username":"ttttt"} 

我想知道錯誤在哪裏?

+0

試試這個:'打印(「用戶名:\(firstNameValue)!」)' – sasquatch

回答

1

您正在獲取Optional關鍵字,因爲當您從字典中獲取任何數據時,它將始終爲您提供可選項。

​​表示它可能包含對象或者它可能包含零。只是編程的更安全的方式

只使用解開可選的,如果讓語句

if let firstNameValue = parseJSON["username"] as? String 
    { 
     print("Username: \(firstNameValue)") 
    } 
+0

這就像下面記錄的同時,數據庫。 我想到了什麼不被告知 – pirpirim