반응형
기존에 서버에 정보를 보내줄 때는 url에 파라미터로 데이터를 전송했는데
HTTP Header로 데이터를 보내주는 방법도 있다는 걸 알게되었다.
API 통신을 할 때, 다음과 같이 HTTPHeaders().add 메서드를 사용해 값을 헤더로 넘겨줄 수 있다.
HTTPHeaders().add(name: String, value: String)
다음과 같이 기기 및 버전 정보를 헤더에 추가해서 보낼 수 있는 것 같다.
class APIManager: NSObject {
internal static func getAPIHeader() -> HTTPHeaders {
var header = HTTPHeaders()
header.add(name: "osVer", value: Utils.getOSVersion())
header.add(name: "platform", value: "iOS")
header.add(name: "appVer", value: Utils.getAppVersion())
return header
}
}
그런 다음 다음과 같이 .get 혹은 .post로 서버와 통신할 때
var hTTPHeaders = APIManager.getAPIHeader() 이렇게 헤더 값들을 가져와 넣어준다.
internal static func requestWithNameGet(requestName : String, parameters : [String: Any]?, response: @escaping (Bool, Any?) ->Void){
let url = URL(string: requestName)
var hTTPHeaders = APIManager.getAPIHeader()
hTTPHeaders["Content-Type"] = "application/json"
AF.request(url!, method: HTTPMethod.get, parameters: parameters, encoding: URLEncoding.default, headers: hTTPHeaders).validate().responseJSON { (responseData) in
switch responseData.result{
case .success(let successData):
response(true,successData)
break
case .failure(let error):
response(false,error)
break;
}
}
}
+ 참고로 위의 정보를 받아올 수 있는 몇가지 방법들
public class Utils {
// OS 버전 받아오기
internal static func getOSVersion () -> String {
return UIDevice.current.systemVersion
}
// 앱 버전 받아오기
internal static func getAppVersion() -> String {
return Bundle.main.infoDictionary?["CFBundleShortVersionString"] as! String
}
// 빌드 버전 받아오기
internal static func getBuildVersion() -> String {
return Bundle.main.infoDictionary?["CFBundleVersion"] as! String
}
// 앱 이름 정보
internal static func getAppName() -> String{
return (Bundle.main.infoDictionary!["CFBundleDisplayName"] as? String)!
}
}
728x90
반응형
'초보 iOS 개발자의 일상 > 개발 업무' 카테고리의 다른 글
[Swift iOS] Reachability 네트워크 체크 (0) | 2021.06.07 |
---|---|
[Swift iOS] Localizing 다국어 처리 (0) | 2021.06.04 |
[Swift iOS] 앱 버전정보 가져오기 (0) | 2021.06.03 |
[Swift iOS] 사파리로 링크 열기 Open url in safari (0) | 2021.06.02 |
[Swift iOS] Section Index Title 한글 초성 가져오기 UnicodeScalar (0) | 2021.05.31 |