[ Swift ] http data 가져오기 data trimming

2020. 10. 15. 17:58Swift

import UIKit
import Foundation// replacingOccurrences을 사용하기 위해서

class ViewController: UIViewController {
    
    @IBOutlet weak var txtResponse: UITextView!
    
    let strUrl : String = "http://192.168.0.11:3000"
    
    
    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 + "/users"
        //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) {
                        var str = String(strData)
                        
                        print(str)
                        
                        str = str.trimmingCharacters(in: ["[","]"])
                        str = str.replacingOccurrences(of: "\"", with: "")
                        str = str.replacingOccurrences(of: ",", with: "\n")
                        print(str)
                        //메인쓰레드에서 출력하기 위해
                        DispatchQueue.main.async {
                            self.txtResponse.text = str
                        }

  
                    }
                }else{
                    print("data nil")
                }
                
                
            })
            task.resume()
        }
    }
}
 



 

>>rawData

replacingOccurence 후에 

 

 

 

 

 

'Swift' 카테고리의 다른 글

[ Swift ] 단축키  (0) 2020.10.27
[ Swift ] DispatchQueue  (0) 2020.10.21
[ Swift ] @IBAction 소스 분석해보기  (0) 2020.10.14
[ Swift ] Tuples  (0) 2020.10.06
[ Swift ] Optional  (0) 2020.10.05