Notice
Recent Posts
Recent Comments
Link
투케이2K
142. (ios/swift) Alamofire ver_5 아라모파이어 http 통신 get , post , post body json 요청 실시 본문
IOS
142. (ios/swift) Alamofire ver_5 아라모파이어 http 통신 get , post , post body json 요청 실시
투케이2K 2022. 4. 4. 14:33[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT
[소스 코드]
// MARK: - [Get 방식 http 요청 실시]
func getRequest(){
/*
// -----------------------------------------
[getRequest 메소드 설명]
// -----------------------------------------
1. 사전 spm 매니저 사용해 Alamofire 라이브러리 설치 필요 :
https://github.com/Alamofire/Alamofire
// -----------------------------------------
2. http 허용 info plist : App Transport Security Settings >> Allow Arbitrary Loads >> YES
// -----------------------------------------
3. import 추가 : import Alamofire
// -----------------------------------------
*/
// [http 요청 주소 지정]
let url = "https://jsonplaceholder.typicode.com/posts?"
// [http 요청 헤더 지정]
let header : HTTPHeaders = [
"Content-Type" : "application/json"
]
// [http 요청 파라미터 지정 실시]
let queryString : Parameters = [
"userId" : 1,
"id" : 1
]
// [http 요청 수행 실시]
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> getRequest() :: Get 방식 http 요청 실시]")
print("-------------------------------")
print("주 소 :: ", url)
print("-------------------------------")
print("데이터 :: ", queryString.description)
print("====================================")
print("")
AF.request(
url, // [주소]
method: .get, // [전송 타입]
parameters: queryString, // [전송 데이터]
encoding: URLEncoding.queryString, // [인코딩 스타일]
headers: header // [헤더 지정]
)
.validate(statusCode: 200..<300)
.responseData { response in
switch response.result {
case .success(let res):
do {
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> getRequest() :: Get 방식 http 응답 확인]")
print("-------------------------------")
print("응답 코드 :: ", response.response?.statusCode ?? 0)
print("-------------------------------")
print("응답 데이터 :: ", String(data: res, encoding: .utf8) ?? "")
print("====================================")
print("")
// [비동기 작업 수행]
DispatchQueue.main.async {
}
}
catch (let err){
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> getRequest() :: Get 방식 http 응답 확인]")
print("-------------------------------")
print("catch :: ", err.localizedDescription)
print("====================================")
print("")
}
break
case .failure(let err):
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> getRequest() :: Get 방식 http 요청 실패]")
print("-------------------------------")
print("응답 코드 :: ", response.response?.statusCode ?? 0)
print("-------------------------------")
print("에 러 :: ", err.localizedDescription)
print("====================================")
print("")
break
}
}
}
// MARK: - [Post 방식 http 요청 실시]
func postRequest(){
/*
// -----------------------------------------
[postRequest 메소드 설명]
// -----------------------------------------
1. 사전 spm 매니저 사용해 Alamofire 라이브러리 설치 필요 :
https://github.com/Alamofire/Alamofire
// -----------------------------------------
2. http 허용 info plist : App Transport Security Settings >> Allow Arbitrary Loads >> YES
// -----------------------------------------
3. import 추가 : import Alamofire
// -----------------------------------------
*/
// [http 요청 주소 지정]
let url = "https://jsonplaceholder.typicode.com/posts?"
// [http 요청 헤더 지정]
let header : HTTPHeaders = [
"Content-Type" : "application/json"
]
// [http 요청 파라미터 지정 실시]
let queryString : Parameters = [
"userId" : 1,
"id" : 1
]
// [http 요청 수행 실시]
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> postRequest() :: Post 방식 http 요청 실시]")
print("-------------------------------")
print("주 소 :: ", url)
print("-------------------------------")
print("데이터 :: ", queryString.description)
print("====================================")
print("")
AF.request(
url, // [주소]
method: .post, // [전송 타입]
parameters: queryString, // [전송 데이터]
encoding: URLEncoding.queryString, // [인코딩 스타일]
headers: header // [헤더 지정]
)
.validate(statusCode: 200..<300)
.responseData { response in
switch response.result {
case .success(let res):
do {
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> postRequest() :: Post 방식 http 응답 확인]")
print("-------------------------------")
print("응답 코드 :: ", response.response?.statusCode ?? 0)
print("-------------------------------")
print("응답 데이터 :: ", String(data: res, encoding: .utf8) ?? "")
print("====================================")
print("")
// [비동기 작업 수행]
DispatchQueue.main.async {
}
}
catch (let err){
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> postRequest() :: Post 방식 http 응답 확인]")
print("-------------------------------")
print("catch :: ", err.localizedDescription)
print("====================================")
print("")
}
break
case .failure(let err):
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> postRequest() :: Post 방식 http 요청 실패]")
print("-------------------------------")
print("응답 코드 :: ", response.response?.statusCode ?? 0)
print("-------------------------------")
print("에 러 :: ", err.localizedDescription)
print("====================================")
print("")
break
}
}
}
// MARK: - [Post Body Json Request 방식 http 요청 실시]
func postBodyJsonRequest(){
/*
// -----------------------------------------
[postBodyJsonRequest 메소드 설명]
// -----------------------------------------
1. 사전 spm 매니저 사용해 Alamofire 라이브러리 설치 필요 :
https://github.com/Alamofire/Alamofire
// -----------------------------------------
2. http 허용 info plist : App Transport Security Settings >> Allow Arbitrary Loads >> YES
// -----------------------------------------
3. import 추가 : import Alamofire
// -----------------------------------------
*/
// [http 요청 주소 지정]
let url = "https://jsonplaceholder.typicode.com/posts"
// [http 요청 헤더 지정]
let header : HTTPHeaders = [
"Content-Type" : "application/json"
]
// [http 요청 파라미터 지정 실시]
let bodyData : Parameters = [
"userId" : 1,
"id" : 1
]
// [http 요청 수행 실시]
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> postBodyJsonRequest() :: Post Body Json 방식 http 요청 실시]")
print("-------------------------------")
print("주 소 :: ", url)
print("-------------------------------")
print("데이터 :: ", bodyData.description)
print("====================================")
print("")
AF.request(
url, // [주소]
method: .post, // [전송 타입]
parameters: bodyData, // [전송 데이터]
encoding: JSONEncoding.default, // [인코딩 스타일]
headers: header // [헤더 지정]
)
.validate(statusCode: 200..<300)
.responseData { response in
switch response.result {
case .success(let res):
do {
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> postBodyJsonRequest() :: Post Body Json 방식 http 응답 확인]")
print("-------------------------------")
print("응답 코드 :: ", response.response?.statusCode ?? 0)
print("-------------------------------")
print("응답 데이터 :: ", String(data: res, encoding: .utf8) ?? "")
print("====================================")
print("")
// [비동기 작업 수행]
DispatchQueue.main.async {
}
}
catch (let err){
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> postBodyJsonRequest() :: Post Body Json 방식 http 응답 확인]")
print("-------------------------------")
print("catch :: ", err.localizedDescription)
print("====================================")
print("")
}
break
case .failure(let err):
print("")
print("====================================")
print("[\(self.ACTIVITY_NAME) >> postBodyJsonRequest() :: Post Body Json 방식 http 요청 실패]")
print("-------------------------------")
print("응답 코드 :: ", response.response?.statusCode ?? 0)
print("-------------------------------")
print("에 러 :: ", err.localizedDescription)
print("====================================")
print("")
break
}
}
}
반응형
'IOS' 카테고리의 다른 글
Comments