IOS 프로그래밍

본문 바로가기
사이트 내 전체검색


IOS 프로그래밍
IOS 프로그래밍

1. request POST 처리

페이지 정보

작성자 관리자 댓글 0건 조회 3,549회 작성일 19-12-10 19:10

본문

1. request POST 처리

​                              // 1. 전송할 값 준비 

            // JSON 객체로 변환할 딕셔너리 준비

                             let parameter = ["id" : user_id, "pw" : user_pw]

            

            // 2. URL 객체 정의

            guard let url = URL(string: "https://www.leelab.co.kr/login2.php") else {return}

            // 3. URLRequest 객체 정의 및 요청 내용 담기

            var request = URLRequest(url: url)

            request.httpMethod = "POST"


            // 4. HTTP 메시지에 포함될 헤더 설정

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

           

            guard let httpBody = try? JSONSerialization.data(withJSONObject: parameter, options: []) else {return}

            request.httpBody = httpBody

             

            // 5. URLSession 객체를 통해 전송 및 응답값 처리 로직 작성

            let session = URLSession.shared

            session.dataTask(with: request) { (data, response, error) in

                guard error == nil else {


                    return

                }

                guard let data = data else {


                    return

                }


                do {

                    if let json = try JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.mutableContainers) as? [String : Any] {

                        //print(json)

                        

                        let code = json["code"] as! Int


                        

                        if code == 200 {


                            DispatchQueue.main.async {

                                print( "Login OK" )


                            }

                            

                        } else {

                            DispatchQueue.main.async {

                               print("Login Error")


                            }

                            

                        

                        }

                        

                    } 

                }catch let error {

                    print(error.localizedDescription)

                    return

                }

                // 6. POST 전송

            }.resume()



----------------------------------------------------------------------

 

  func onHttpRequest() {

        

        

        //URL생성

        guard let url = URL(string: "http://192.168.0.100:3000/users") else {return}

        

        var request = URLRequest(url: url)

        request.httpMethod = "get" //get : Get 방식, post : Post 방식

        

        let session = URLSession.shared

        let task = session.dataTask(with: request, completionHandler: { (data: Data?, response: URLResponse?, error: Error?) in

            //error 일경우 종료

            guard error == nil && data != nil else {

                if let err = error {

                    print(err.localizedDescription)

                }

                return

            }

            

            //data 가져오기

            if let _data = data {

                if let strData = NSString(data: _data, encoding: String.Encoding.utf8.rawValue) {

                    let str = String(strData)

                    print(str)

                    //메인쓰레드에서 출력하기 위해

                    DispatchQueue.main.async {

                        print(str)

                    }

                }

            }else{

                print("data nil")

            }

        })

        task.resume()

        

    }

 

  func onHttpRequestPost(){

        

        print("포스트 방식 데이터 가지러옴")

        // 1. 전송할 값 준비

        //2. JSON 객체로 변환할 딕셔너리 준비

        let parameter = ["create_name" : "kkkkkkkk", "create_age" : "909090"]

        //let postString = "create_name=13&create_age=Jack"

        // 3. URL 객체 정의

        guard let url = URL(string: "http://192.168.0.100:3000/user_create") else {return}

        // 3. URLRequest 객체 정의 및 요청 내용 담기

        var request = URLRequest(url: url)

        request.httpMethod = "POST"

        // 4. HTTP 메시지에 포함될 헤더 설정

        

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

        let body = "create_name=mylove&create_age=1212".data(using:String.Encoding.ascii, allowLossyConversion: false)

        request.httpBody = body

        

        // 5. URLSession 객체를 통해 전송 및 응답값 처리 로직 작성

        let session = URLSession.shared

        session.dataTask(with: request) { (data, response, error) in

            if let res = response{

                print(res)

            }

            

            if let data = data {

                

                do{

                    let json = try JSONSerialization.jsonObject(with: data, options: [])

                    print(json)

                }catch{

                    print(error)

                }

            }

            // 6. POST 전송

            }.resume()

        

    }

 

참고사이트 :

 

https://abc1211.tistory.com/534

 

댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.