티스토리 뷰
Mobile/iOS
iOS. Alamofire GET request array param의 brackets 없애기... 다른말로 [] 없애서 보내기
out of coding 2019. 6. 19. 17:06우리가 Alamofire를 이용하여서 파라메터를 전송할때 Array가 포함되어 있을 경우가 있습니다.
이러한 경우에는 서버쪽에서 받아주는 값이랑 맞추어 주어야 하는데요. 기본값은 다음과 같이 동작합니다.
1 | foo[]=bar1&foo[]=bar2 |
그렇습니다. 이렇게 연속으로 가면서 [] 브라켓을 달고 가게 됩니다.
이것을 빼보도록 할게요...
1 | foo=bar1&foo=bar2 | cs |
이런 형태로 전송이 될것입니다.
1. 우선 그렇다면 이것을 Custom하게 만드는 방법입니다.
1 2 3 4 5 6 7 8 9 10 11 12 | // Remove square brackets for GET request struct CustomGetEncoding : ParameterEncoding { func encode(_ urlRequest: URLRequestConvertible, with parameters: Parameters?) throws -> URLRequest { var request = try URLEncoding().encode(urlRequest, with: parameters) request.url = URL(string: request.url!.absoluteString.replacingOccurrences(of: "%5B%5D=", with: "=")) return request } } ... Alamofire.request("http://example.com", method: .get, parameters: ["foo": ["bar1", "bar2"]], encoding: CustomGetEncoding()) |
이렇게 하게 되면 위에 표현한 상태인 브라켓이 사라진 형태로 전송이 됩니다.
2. Alamofire에서 만들어줬습니다. ㅠㅠ
이것을 구현해서 하려고 별것들을 다 찾아보았는데 별다른 좋은 방법이 발견되지 않았고... 만들어서 사용하였는데요.
아주 좋은 방법이 있습니다.
Alamofire를 4.7.0 이상으로 일단 업데이트를 하여줍니다.
1 | URLEncoding(arrayEncoding: .noBrackets) |
이것을 사용하여 줍니다.
아무래도 조직에 따라서는 Alamofire를 업데이트를 하지 못하는 조직도 있을수 있어서 그럴 경우에는 1의 방법을 사용하고 그렇지 않을 경우에는 2의 방법을 사용하도록 하면 되겠습니다.
'Mobile > iOS' 카테고리의 다른 글
iOS. swift의 초기화에 대해서 알아봅시다 (0) | 2019.06.29 |
---|---|
iOS. xcode로 빌드할때 ITMS-90473 해결. Extension Version 자동 맞추기 (0) | 2019.06.29 |
swift. map, flatMap, compactMap (0) | 2019.04.01 |
swift. Type matching - 4. if case let, guard case let, for case let (0) | 2019.03.23 |
swift. Type matching - 3. Custom aka. ~= (0) | 2019.03.23 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- Spring
- tomcat
- ios
- MySQL
- SWIFT
- nodejs
- enum
- Python
- docker
- centos8
- go
- ubuntu
- Windows
- cocoapods
- android
- intellij
- rxswift
- Xcode
- Java
- CentOS
- php
- war
- Linux
- github
- Kotlin
- golang
- Gradle
- Codable
- windows10
- git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함