clamp
Clamp
clamp
글쓰기 관리
전체 방문자
오늘
어제
  • 분류 전체보기 (509)
    • IOS (85)
    • SwiftUI+TCA+Combine (9)
    • RxSwift + MVVM (56)
    • Clean Architecture (12)
    • SWIFT (56)
    • iOS - TDD (2)
    • 디자인패턴 (4)
    • CS (56)
      • 알고리즘 (29)
      • 운영체제 (15)
      • 자료구조 (2)
      • 네트워킹 (4)
      • 기타 (6)
    • 회고 (0)
    • Firebase (18)
    • SwiftUI (10)
    • iOS - UIKit (11)
    • iOS - 오픈소스 (6)
    • 코딩테스트 (166)
      • 프로그래머스 (164)
    • 정보처리기사 (14)
    • GitHub (2)
글쓰기 / 관리자

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Swift
  • Q
  • ㅅ
  • uikit

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
clamp

Clamp

IOS - Alamofire을 이용한 HTTP통신
iOS - 오픈소스

IOS - Alamofire을 이용한 HTTP통신

2022. 2. 22. 15:11

Alamofire:

- Swift기반의 HTTP네트워킹 라이브러리

- URLSession에 기반한 라이브러리

- 네트워킹 작업을 단순화 하고, 다양한 메서드와 JSON파싱등을 제공한다.

- 연결가능한 request, response를 제공하고 URL JSON 형태의 파라미터 인코딩 지원.

- file, data, String, multipart등 업로드 기능 제공

- HTTP response검증과 광범위한 단위테스트 및 통합테스트를 제공

 

 

URLSession 대신 Alamofire를 사용하는 이유

코드의 간소화, 가독성 측면에서 도움을 주고 여러 기능을 직접 구축하지 않아도 쉽게 사용할 수 있음

 

1. request메서드를 이용하여 HTTP요청을 할 수 있고, 전달인자를 이용하여 요청에 필요한 정보를 쉽게 설정할 수 있다.

 

open func request<Parameters: Encodable>(_ convertable: URLConvertible,
				            method: HTTPMethod = .get, 
                                            parameters: Parameters? = nil, 
                                            encoder: ParameterEncoder = 
                                            URLEncodedFromParameterEncoder .default, 
                                            headers: HTTPHeaders? = nil, i
                                            nterceptor: RequestInterceptor? = nil) -> DataRequest

 

2. Alamofire HTTP Method

public struct HTTPMEthod: RawRepresentable, Equatable, Hashable{
    public static let connect = HTTPMethod(rqwValue: "CONNECT")
    public static let delete = HTTPMEthod(rawValue: "DELETE")
    public static let get = HTTPMEthod(rawValue: "GET")
    public static let head = HTTPMEthod(rawValue: "HEAD")
    public static let options = HTTPMEthod(rawValue: "OPTIONS")
    public static let patch = HTTPMEthod(rawValue: "PATCH")
    public static let post = HTTPMEthod(rawValue: "POST")
    public static let put = HTTPMEthod(rawValue: "PUT")
    public static let trace = HTTPMEthod(rawValue: "trace")
    
    public let rawValue: String

    public init(rawValue: String){
        self.rawValue = rawValue
    }
}
AF.request("https://httpbin.org/get")
AF.request("https://httpbin.org/post", method: .post)
AF.request("https://httpbin.org/put", method: .put)
AF.request("https://httpbin.org/delete", method: .delete)

 

Alamofire에서는 요청에 대한 응답을 response메서드를 이용하여 handling한다

6개의 서로다른 메서드가 정의되어 있으며, 응답이 완료되면 completionHanler가 호출이 된다.

 

response메서드는 아래와 같이 request메서드를 체이닝 하여 사용되게된다.
 
AF.request("https://httpbin.org/get").responseJSON{ response in 
	debugPrint(response)
}
저작자표시 비영리 동일조건 (새창열림)
    'iOS - 오픈소스' 카테고리의 다른 글
    • [iOS] SDWebImage 라이브러리
    • IOS - Lottie(오픈소스)
    • IOS - Kingfisher(오픈소스)
    • IOS - Alamofire를 이용한 API 데이터화.
    clamp
    clamp
    주니어 iOS개발자의 발악!!!!!!!

    티스토리툴바