protocol file


//

//  ServerHandler.swift

//  LoginWebService

//

//  Created by Krishna on 28/05/16.

//  Copyright © 2016 Krishna. All rights reserved.

//


import Foundation


@objc protocol ServerHandler {


        func requestFinish(data:NSData)

    

        func error(error:NSError)

    

       optional func request()

}




—————————————————————————————



server Manager File



//

//  SerevrManager.swift

//  LoginWebService

//

//  Created by Krishna on 28/05/16.

//  Copyright © 2016 Krishna. All rights reserved.

//


import Foundation


class SerevrManager: NSObject {

  

    

    var delegate:ServerHandler?

    

    

    

    func mackHttpRequest(serviceType:String,param:NSData)

    {

        

        

   //     var dic:NSMutableDictionary!

        

        let urlString = "http://jsonplaceholder.typicode.com/todos"

        

      // let mainurl = urlString.stringByAppendingString(serviceType)

        

       // print(mainurl)

        

         guard let url = NSURL(string: urlString)

        else

        {

            print("error in url")

            return

        }

        

        

        let jsonString = NSString(data: param, encoding: NSASCIIStringEncoding)

        

        

        let request = NSMutableURLRequest(URL:url)

        

        request.HTTPMethod = "POST"

        

        request.HTTPBody = jsonString?.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: true)

        

        request.addValue("application/json", forHTTPHeaderField: "Content-type")

        

        let session = NSURLSession.sharedSession()

        

       // let task = session.dataTaskWithRequest(request,completionHandler: {data,response,error -> Void in

    

        

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

            

            if error != nil

            {

                self.delegate?.error(error!)

                

            }

            else

            {

//                do

//                {

//                   var dic = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments) as! NSDictionary

//                    

//                    print("this is \(dic)")

//                }

//                catch

//                {

//                    

//                }

                

                let str = "Arvind"


                self.delegate?.request!()

                self.delegate?.requestFinish(data!)

                

            

            }

        

        }

        

        task.resume()

    }

    

    func login(username:String,password:String)

    {

        

        var dicParam = NSMutableDictionary()

        dicParam.setValue(username, forKey: "USERNAME")

        dicParam.setValue(password, forKey: "PASSWORD")

    

        var par:NSData!

        do

        {

            

          par = try NSJSONSerialization.dataWithJSONObject(dicParam, options: .PrettyPrinted)

        }

        catch

        {

            print("error in converting json to data")

        }

        

       self.mackHttpRequest("login", param:par)

        

    }

    

    

}




——————————————————————


//

//  ViewController.swift

//  LoginWebService

//

//  Created by Krishna on 27/05/16.

//  Copyright © 2016 Krishna. All rights reserved.

//


import UIKit


class ViewController: UIViewController, ServerHandler,UITextFieldDelegate {

    

    

    var networkManager = SerevrManager()

    var dic:NSDictionary!


    @IBOutlet weak var passwordTextField: UITextField!

    @IBOutlet weak var usernameTextField: UITextField!

    override func viewDidLoad() {

        super.viewDidLoad()

        // Do any additional setup after loading the view, typically from a nib.

        

        passwordTextField.delegate = self

        usernameTextField.delegate = self

        

        networkManager.delegate = self

        

        

        

       }


    override func didReceiveMemoryWarning() {

        super.didReceiveMemoryWarning()

        // Dispose of any resources that can be recreated.

    }

    

    

    

    func textFieldShouldReturn(textField: UITextField) -> Bool {

        

        return textField.resignFirstResponder()

    }

    


    @IBAction func loginButton(sender: UIButton) {

        

        

        networkManager.login(usernameTextField.text!, password:passwordTextField.text!)

        

        

    }

    

    @IBAction func signupButton(sender: UIButton) {

        

        

        

    }

    

    func requestFinish(data: NSData) {

    

        

        

        

        print("hello..........................")

        

        do

        {

            dic = try NSJSONSerialization.JSONObjectWithData(data, options:.AllowFragments) as! NSDictionary

            print(dic)

        }

        catch

        {

            print("error")

        }

        

        

        if "Succes" == dic["Succes"]?.string

        {

            print("Login Succes")

        }

        else

        {

            print("login Faild")

        }

        

        

    }

    

    func request() {

        print("hello........")

    }

    

    func error(error: NSError) {

    

        print("error in service Calling \(error.userInfo)")

        

    }

    

    


}