2016-12-26 9 views
-3

Я пытаюсь отправить данные на сервер с помощью словаря, но, к сожалению, данные не сохраняются в базе данных (поля были пустыми), и я получаю следующий ответ:post параметр to sever using dictionary swift

Дополнительно ([ «статус»: правда, «сообщение»: преуспевающая])

а также пытался показать 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

yes '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 –

 Смежные вопросы

  • Нет связанных вопросов^_^