HTTP 통신하기2
- IOS 보안 정책으로 HTTP 통신을 하기 위한 설정 진행 : http://ghj1001020.tistory.com/762
ViewController.swift)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import UIKit class ViewController: UIViewController { @IBOutlet weak var txtResponse: UITextView! let strUrl : String = "http://swopenAPI.seoul.go.kr/api/subway/sample/" override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func onHttpRequest(_ sender: Any) { let api = strUrl + "/json/realtimePosition/1/5/1호선" //URL에 한글이 있기 때문에 인코딩 해준다 let encoding = api.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) //URL생성 let url = URL(string: encoding!) if let _url = url { var request = URLRequest(url: _url) request.httpMethod = "get" //get : Get 방식, post : Post 방식 //header 설정 // request.setValue("", forHTTPHeaderField: "") //post body 설정 // var requestBody : String = "" // request.httpBody = requestBody.data(using: .utf8) 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 { self.txtResponse.text = str } } }else{ print("data nil") } }) task.resume() } } } | cs |
결과
- 버튼 클릭시 지하철 운행
'IT > - 프로그래밍' 카테고리의 다른 글
Android ProgressBar 이용하여 로딩바 애니메이션 구현하기 (0) | 2018.06.09 |
---|---|
Android NDK JNI이용하여 C/C++ 라이브러리 호출하기 (0) | 2017.10.15 |
IOS (Swift) HTTP 통신하기1 - 특정 도메인과 HTTP 통신 허용하기 (0) | 2017.10.09 |
Android NDK HelloWorld (0) | 2017.10.07 |
IOS (Swift) SQLite 사용하기2 - 테이블생성, 데이터 INSERT, UPDATE, SELECT (0) | 2017.10.01 |