투케이2K

144. (ios/swift) Alamofire ver_5 아라모파이어 get 방식 이미지 파일 주소 호출 및 이미지 뷰에 사진 표시 실시 본문

IOS

144. (ios/swift) Alamofire ver_5 아라모파이어 get 방식 이미지 파일 주소 호출 및 이미지 뷰에 사진 표시 실시

투케이2K 2022. 4. 5. 16:21
반응형

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [Get 방식 이미지 파일 데이터 요청 실시]
    func getImageRequest(){
        
        /*
        // -----------------------------------------
        [getImageRequest 메소드 설명]
        // -----------------------------------------
        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://test.app.ac.kr/pro_image?"
        
        
        // [http 요청 헤더 지정]
        let header : HTTPHeaders = [
            "Content-Type" : "application/json"
        ]
        
        
        // [http 요청 파라미터 지정 실시]
        let queryString : Parameters = [
            "user" : 1234
        ]
        
        
        // [http 요청 수행 실시]
        print("")
        print("====================================")
        print("[\(self.ACTIVITY_NAME) >> getImageRequest() :: Get 방식 이미지 파일 데이터 요청 실시]")
        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) >> getImageRequest() :: Get 방식 이미지 파일 데이터 응답 확인]")
                    print("-------------------------------")
                    print("응답 코드 :: ", response.response?.statusCode ?? 0)
                    print("-------------------------------")
                    print("응답 데이터 :: ", res)
                    print("====================================")
                    print("")
                    
                    // [비동기 작업 수행]
                    DispatchQueue.main.async {
                        
                        // [UIImageView : 이미지 뷰에 사진 표시 실시]
                        let image = UIImage(data: res)

                        self.imageView.image = image
                    }
                }
                catch (let err){
                    print("")
                    print("====================================")
                    print("[\(self.ACTIVITY_NAME) >> getImageRequest() :: Get 방식 이미지 파일 데이터 응답 확인]")
                    print("-------------------------------")
                    print("catch :: ", err.localizedDescription)
                    print("====================================")
                    print("")
                }
                break
            case .failure(let err):
                print("")
                print("====================================")
                print("[\(self.ACTIVITY_NAME) >> getImageRequest() :: Get 방식 이미지 파일 데이터 요청 실패]")
                print("-------------------------------")
                print("응답 코드 :: ", response.response?.statusCode ?? 0)
                print("-------------------------------")
                print("에 러 :: ", err.localizedDescription)
                print("====================================")
                print("")
                break
            }
        }
    }
 

[결과 출력]

 

 

반응형
Comments