OkHttp가있을 때 Retrofit을 사용하는 이유
OkHttp를 사용하면 HTTP 요청을 한 다음 서버에서 응답을 얻을 수 있습니다.
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
그런 다음 Gson lib를 사용하여 응답을 필요한 객체로 변환하십시오.
이것은 Square / OkHttp 문서에서 가져온 것입니다.
요청 / 응답 API는 유창한 빌더와 불변성으로 설계되었습니다. 동기 차단 호출과 콜백을 통한 비동기 호출을 모두 지원합니다.
Retrofit은 가능한 경우 자동으로 OkHTTP를 사용합니다.
.
그래서 제 질문은 정확히 Retrofit이 무엇입니까?
OkHttp가 할 수없는 Retrofit은 무엇을 할 수 있습니까?!
OkHttp와 Gson이 요청 API 문제를 해결한다고 생각하는데 Retrofit은 어떤 문제를 해결합니까?
OkHttp를 사용하면 HTTP 요청을 한 다음 서버에서 응답을 얻을 수 있습니다 ... 그런 다음 Gson lib를 사용하여 응답을 필요한 객체로 변환합니다.
코드 스 니펫에서 URL을 생성하고 실제로 Gson을 사용하여 JSON을 구문 분석하는 두 가지 주목할만한 단계를 건너 뛰었습니다.
그래서 제 질문은 정확히 Retrofit이 무엇입니까?
URL을 생성하고 (특정 REST API에 연결된 유형 인식 생성 코드를 사용하여) 실제로 Gson을 사용하여 JSON을 구문 분석합니다. 즉, 코드 조각에서 건너 뛴 작업을 수행합니다.
또한 특정 유형의 REST 작업 (예 : POST)의 경우 제출할 항목을 조립하는 데 도움이됩니다 (예 : 인코딩 된 양식 생성).
정의에 따라 Retrofit을 사용할 필요가 없습니다. Retrofit은 컴퓨터 프로그래머가 작성한 컴퓨터 코드입니다. 누군가가 Retrofit이하는 일을하는 코드를 작성할 수 있습니다.
Retrofit이 OkHttp를 사용하는 이유
Retrofit은 HTTP 작업을 수행해야합니다. 가능한 경우 OkHttp가 제공하는 모든 것에 대해 OkHttp를 사용합니다 : HTTP / 2 및 SPDY 지원, 플러그 형 인터셉터 등.
애플리케이션 내에서 서버 API를 매핑하려는 경우 개조를 사용해야합니다 (유형 보호). Retrofit은 okHTTP를 통해 래핑 된 API 어댑터입니다.
API와 상호 작용 코드를 안전하게 입력하고 모듈화하려면 개조를 사용하십시오. 그 외에도 okHTTP 및 Retrofit의 기본 성능, 요청 기본값 등은 동일합니다.
또한 Jesse Wilson (주요 Android HTTP 클라이언트 개발자) 의이 팟 캐스트를 들어 볼 것을 권장합니다 . 여기에서 Apache HTTP 클라이언트, HTTPURLConnection, okHTTP 및 Retrofit의 개발 역사에 대해 깊이 이야기합니다.
Retrofit vs. OkHttp 이유는 간단합니다 . OkHttp는 낮은 수준의 네트워크 작업, 캐싱, 요청 및 응답 조작 등을 담당하는 순수 HTTP / SPDY 클라이언트입니다. 대조적으로 Retrofit은 OkHttp를 기반으로하는 고수준 REST 추상화입니다. Retrofit 2는 OkHttp와 강력하게 결합되어이를 집중적으로 사용합니다.
OkHttp 기능 : 연결 풀링, gzipping, 캐싱, 네트워크 문제에서 복구, 동기화 및 비동기 호출, 리디렉션, 재시도 등.
개조 기능 : URL 조작, 요청,로드, 캐싱, 스레딩, 동기화 ... 동기화 및 비동기 호출이 가능합니다.
Retrofit은 Android 및 Java by Square 용 REST 클라이언트입니다. REST 기반 웹 서비스를 통해 비교적 쉽게 JSON (또는 기타 구조화 된 데이터)을 검색하고 업로드 할 수 있습니다. Retrofit에서 데이터 직렬화에 사용되는 변환기를 구성합니다. 일반적으로 JSON의 경우 GSon을 사용하지만 사용자 지정 변환기를 추가하여 XML 또는 기타 프로토콜을 처리 할 수 있습니다. Retrofit은 HTTP 요청에 OkHttp 라이브러리를 사용합니다. 기능을 위해 okhttp보다 개조를 사용해야합니다.
참고 URL : https://stackoverflow.com/questions/39183294/why-use-retrofit-when-we-have-okhttp
'programing' 카테고리의 다른 글
2017 년 IBDesignable을 사용하여 점선 (점선이 아님)을 그립니다. (0) | 2020.09.19 |
---|---|
열린 cv 오류 : (-215) scn == 3 || (0) | 2020.09.19 |
함수 호출에서 선택적 인수를 어떻게 건너 뛰나요? (0) | 2020.09.19 |
SQLite DB를 암호로 보호합니다. (0) | 2020.09.19 |
Python으로 GUI 개발 : Tkinter 대 PyQt (0) | 2020.09.19 |