2016-12-26 11 views
-3

사전을 사용하여 서버에 데이터를 보내려고하지만 불행히도 데이터가 데이터베이스에 저장되지 않습니다 (필드가 비어있는 것으로 나타남). 아래 응답이 표시됩니다.사전 스 와이프를 사용하여 매개 변수를 게시하기 위해 게시

는 옵션 ([ "상태"사실, "MSG"성공적인])는 그 응답을 가지고 있지만 방법을 찾을 수있을 때까지

또한 사용자에 UIActivityIndicator을 보여주기 위해 노력했다.

코드 시도 :

let dict = [ "key_one": self.tf1.text!,"key_two":self.tf2.text!] 

    do { 

     let jsonData = try NSJSONSerialization.dataWithJSONObject(dict, options: .PrettyPrinted) 

     // create post request 
     let url = NSURL(string: "myAPIUrl.php?")! 
     let request = NSMutableURLRequest(URL: url) 
     request.HTTPMethod = "POST" 

     // insert json data to the request 
     request.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type") 
     request.HTTPBody = jsonData 

     let task = NSURLSession.sharedSession().dataTaskWithRequest(request){ data, response, error in 
      if error != nil{ 
       print("Error -> \(error)") 
       return 
      } 

      do { 
       let result = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as? [String:AnyObject] 

       print("Response -> \(result)") 

      } catch { 
       print("Inside Error Section -> \(error)") 
      } 
     } 

     task.resume() 

    } catch { 
     print(error) 
    } 
+0

key_one는 데이터베이스 테이블 필드는 무엇입니까? –

+0

예'key_one'은 제 데이터베이스와 관련이 있습니다. 사실 모든 키입니다. – vaibhav

+0

key_one과 key_two는 모두 필드이고 .php 파일의 쿼리는 무엇입니까 –

답변

1

// 하나 fucantion이 쓰기

let Username:NSString = EmailTextField.text! as NSString 
let password:NSString = PasswordTextField.text! as NSString 


let headers = [ 
      "content-type": "application/json", 
      "cache-control": "no-cache", 
      "postman-token": "121b2f04-d2a4-72b7-a93f-98e3383f9fa0" 
     ] 
let parameters = [ 
      "username": "\(Username)", 
      "password": "\(password)" 
     ] 

if let postData = (try? JSONSerialization.data(withJSONObject: parameters, options: [])) { 

     var request = NSMutableURLRequest(url: URL(string: "YOUR_URL_HERE")!, 
               cachePolicy: .useProtocolCachePolicy, 
               timeoutInterval: 10.0) 
     request.httpMethod = "POST" 
     request.allHTTPHeaderFields = headers 
     request.httpBody = postData 

     let session = URLSession.shared 

     let task = URLSession.shared.dataTask(with: request as URLRequest) { 
       (data, response, error) -> Void in 
       if (error != nil) { 
        print(error) 
       } else { 
        DispatchQueue.main.async(execute: { 

         if let json = (try? JSONSerialization.jsonObject(with: data!, options: [])) as? NSDictionary 
         { 
          let success = json["status"] as? Int 
          let message = json["message"] as? String 
          // here you check your success code. 
          if (success == 1) 
          { 
           print(message) 
           let vc = UIActivityViewController(activityItems: [image], applicationActivities: []) 
           present(vc, animated: true) 
          } 
          else 
          { 

           // print(message) 
          } 

         } 

        }) 
       } 
      } 

      task.resume() 
     } 
+0

이유가없는 이유를 알지 못해서이 코드를 사용해 보도록하겠습니다. – vaibhav

+0

은'UIActivityViewController' 또는'UIActivityIndicator'입니까? – vaibhav

+0

이제이 코드에서 nay activityindicatorcontroller beacuse를 사용하지 않았습니까? 먼저이 코드가 제대로 작동하는지 확인해야합니까? 그렇다면 당신은 UIActivityViewController –