- URLRequest 주요 사용 목적
- 웹페이지 접근
- HTTP 요청 커스터마이즈
- HTTP 메소드(GET, POST등)설정
- Load 함수에 GET을 사용했을 때 데이터를 받아오려면 evaluateJavaScript()메소드를 사용하여 웹 페이지에서 필요한 데이터를 추출한다.
- 헤더 설정
- 바디 데이터 설정
- 이를 통해 인증, 쿠키관리, 추가파라미터 전송 등 처리가능
- 사용자 인증을 요구하는 API에 접근할 때 필요한 토큰을 헤더에 포함시킬 수 있다.
- 캐싱 정책 설정
- 타임아웃 설정
import UIKit
import WebKit
class ViewController: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
// WKWebView 설정
webView = WKWebView(frame: self.view.bounds)
webView.navigationDelegate = self
self.view.addSubview(webView)
// 웹 페이지 로드
if let url = URL(string: "https://www.example.com") {
let request = URLRequest(url: url)
webView.load(request)
}
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
print("웹 페이지 로딩 완료")
// 웹 페이지가 로드 완료된 후 데이터 처리
extractDataFromPage()
}
func extractDataFromPage() {
// JavaScript를 사용하여 웹 페이지에서 데이터 추출
webView.evaluateJavaScript("document.body.innerText") { (result, error) in
if let result = result as? String {
print("페이지 텍스트: \(result)")
} else if let error = error {
print("JavaScript 평가 에러: \(error)")
}
}
}
}