티스토리 뷰
안녕하세요 :) Zedd입니다.
오늘은 URLComponents에 대해서 공부해보겠습니다.
URLComponents
간단한 정의는...URL을 구성하는 "구조"라고 생각하시면 됩니다.
예를들어
GET http(s)://[hostname]/login/oauth/authorize
위 URL호출시 client_id와 scope라는 값을 파라미터로 전달하고 싶습니다.
get이니 파라미터는 URL 쿼리스트링으로 들어가게됩니다.
그러면
GET http(s)://[hostname]/login/oauth/authorize?client_id=\(client_id)&scope=\(scope)
이런식으로 요청 할 수 있겠죠.
네! 아무문제 없어요!
근데 오늘 공부할 URLComponents를 사용하면 좀 더..깔끔하게 할 수 있을 것 같아요.
GET http(s)://[hostname]/login/oauth/authorize?client_id=\(client_id)&scope=\(scope)
이렇게 하면 파라미터 이름에 오타가 있는데도 발견하기 힘들 수 있으니까요...??
그럼 본격적으로 사용해봅시다.
1. URLComponents를 base가 될 URL을 가지고 만들어줍니다.
2. URLQueryItem을 만들어줍니다. 이 친구는 URL 쿼리 부분으로 들어갈 name-value쌍입니다. 저는 client_id와 scope를 넣어줬습니다.
3. URLComponents의 queryItems에 만든 URLQueryItem들을 넣어줍니다. 넣어준 순서대로 URL 쿼리 문자열에 나오게 됩니다.
그럼 결과는
https://github.com/login/oauth/authorize?client_id=\(clientID)&scope=\(scope)
우리가 처음 static string으로 만들었던것과 똑같이 만들어집니다.
[주의]
- component.queryItems.append(만든 URLQueryItem) 하면 component.url했을 때 반영 안됨.
그럼 반대로 해볼까요?
https://github.com/login/oauth/authorize?client_id=\(clientID)&scope=\(scope)
이런 URL이 있을 때 client_id와 scope를 얻고싶습니다.
이럴떄도 URLComponents를 사용하면 간편합니다.
위 과정을 거꾸로 하면 됩니다. queryItems을 가져오고..queryItems이 배열이었으니까, 해당 배열을 돌면서 가져오면 되겠죠.
queryItems들만 가져올 순 있는게 아닙니다.
이런것들도 간편하게 가져올 수 있습니다!
'Swift' 카테고리의 다른 글
Swift ) 정렬 (1) (0) | 2020.11.23 |
---|---|
Swift 5.3 released! (3) | 2020.09.17 |
Swift ) TextOutputStream (1) | 2020.04.25 |
Swift 5.2 Released! (1) | 2020.03.25 |
Standard Library Preview Package (1) | 2020.02.19 |
- SwiftUI
- 피아노
- UIBezierPath
- Git
- swift array
- WKWebView
- 제이슨 파싱
- iOS delegate
- IOS
- swift sort
- swift 공부
- FLUTTER
- github
- np-complete
- swift3
- WWDC
- swift tutorial
- actor
- swift delegate
- Xcode
- Accessibility
- ios 13
- fastlane
- Combine
- 스위프트 문법
- np-hard
- 회고
- Swift
- WidgetKit
- 스위프트
- Total
- Today
- Yesterday