1. request POST 처리
페이지 정보
작성자 관리자 댓글 0건 조회 4,430회 작성일 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
댓글목록
등록된 댓글이 없습니다.