-
[ios - Swift] Alamofire Exampleios 2020. 12. 21. 09:40
맥북에서 프로젝트 파일이 사라지는 버그가 있는 것 같아 관련 소스가 많이 사라져 내용이 빈약합니다...
이번 글에서는 Alamofire 라이브러리에 대한 간단한 코드만 작성하도록 하겠습니다.
우선 서버는 톰캣 서버를 이용했으며 결과 값 수신은 json을 이용해 리턴 받을 수 있도록 별도의 서버를 구축하면 됩니다.
1. request
guard let url = URL(string: "http://192.168.0.1/rest/member/members.json") else { return }
let params = [ "identifier" : "공유", "password" : 1234, ] as [String : Any]
let alamo = AF.request(url , method: .post , parameters: params , encoding: URLEncoding.default).validate(statusCode: 200..<300)
alamo.responseJSON { (response) in let json = JSON(response.data) let list = json["mlist"] let resultCode = json["resultCode"] print("list : \(list)") print("resultCode : \(resultCode)") }
response.result를 통해 success 또는 failure의 결과를 확인할 수 있습니다.
2. flie upload
let image1 = img1.image let image2 = img2.image let image3 = img3.image let image4 = img4.image let data1 = image1?.pngData() let data2 = image2?.pngData() let data3 = image3?.pngData() let data4 = image4?.pngData() guard let url = URL(string: "http://192.168.0.1/rest/chat/uploadImages.do") else { return } let header: HTTPHeaders = [ "Content-Type" : "multipart/form-data", // application/json "Accept" : "application/json" ] let alamo = AF.upload(multipartFormData: { multipartFormData in multipartFormData.append(data1!, withName: "fileData1", fileName: "fileData1.png", mimeType: "image/png") multipartFormData.append(data2!, withName: "fileData2", fileName: "fileData2.png", mimeType: "image/png") multipartFormData.append(data3!, withName: "fileData3", fileName: "fileData3.png", mimeType: "image/png") multipartFormData.append(data4!, withName: "fileData4", fileName: "fileData4.png", mimeType: "image/png") }, to: url, method: .post, headers: header) alamo.responseJSON { (response) in switch response.result { case .success(let value): print("success: \(value)") case .failure(let value): print("failure: \(value)") } }
alamo.responseJson 사용할 때 주의할 점은 서버에 파일이 업로드가 되더라도 결과에서는 실패로 인식할 때가 있습니다.
수신을 json으로 받기 위해 헤더 설정에서 "Accept" : "application/json"를 추가하면 실패로 나오던 것을 해결할 수 있으며 json으로 받지 않을 분은
responseJson 대신 response을 사용하면 됩니다.
'ios' 카테고리의 다른 글
[ios - Swift] MapView 사용하기 (MKMapView 2 / 2) (0) 2020.12.23 [ios - Swift] MapView 사용하기 (MKMapView 1 / 2) (1) 2020.12.22 [ios - Swift] PHCachingImageManager 사용하기 (0) 2020.12.14 [ios - Swift] UIImageView Gesture 동작 안하는 문제 (0) 2020.12.08 [ios - Swift] Foreground Push 알림 사용 (UNUserNotificationCenter 2/2) (0) 2020.12.06