반응형
가장 많이 궁금했던 부분이 네트워크 통신 부분.
실무에서 아무래도 네트워크 사용하지 않는 프로젝트가 없기 때문이다. 스위프트에서도 역시 좋은 라이브러리가 있는데 'Alamofire'에 대해는 다음장에서 실습하기로 하고, 기본적인 네트워크 통신 Method인 'get','post'에 대한 예제 코드를 올려 둔다.
post방식
func post() {
let userId = "younghu.min@gmail.com";
let name = "후씨";
let param = "userId=\(userId)&name=\(name)"
let paramData = param.data(using: .utf8)
//
let url = URL(string : "url");
//
var request = URLRequest(url: url!)
request.httpMethod = "POST"
request.httpBody = paramData;
//
request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
request.setValue(String(paramData!.count), forHTTPHeaderField: "content-Length")
//
let task = URLSession.shared.dataTask(with: request) { (data, response, error) in
//
if let e = error {
NSLog("An error has occurred: \(e.localizedDescription)")
return;
}
//응답처리
DispatchQueue.main.async {
do {
let object = try JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary
guard let jsonObject = object else {return}
NSLog("post json data = %@", jsonObject)
} catch let e as NSError {
NSLog("An error has occurred: \(e.localizedDescription)")
}
}
}
task.resume(); //POST전송
}
get
func callCurrentTime() {
do {
let url = URL(string: "url")
let response = try String(contentsOf: url!)
NSLog("current time = %@", response)
} catch let e as NSError {
print(e.localizedDescription);
}
}
반응형
'프로그래밍 > Swift' 카테고리의 다른 글
스위프트의 튜플(Tuple)이란? (0) | 2018.03.14 |
---|---|
스위프트 익스텐션을 이용한 Touch ID구현(지문인식) (0) | 2018.03.12 |
커스텀 프로퍼티 리스트를 이용한 데이터 처리 방법(예제코드) (0) | 2018.03.07 |
UIView.animate with Swift Code (0) | 2018.03.06 |
Swift프로젝트에 Objective-C클래스 사용하기(브릿징헤더:Bridging Header) (0) | 2018.03.06 |