Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

이미정_7주차 과제 #76

Open
leemijung opened this issue May 30, 2021 · 0 comments
Open

이미정_7주차 과제 #76

leemijung opened this issue May 30, 2021 · 0 comments

Comments

@leemijung
Copy link
Contributor

leemijung commented May 30, 2021

  1. OkHttp 와 Retrofit 차이점

    [1] OkHttp

    1. 서버와 HTTP, HTTP/2 프로토콜 통신을 위한 클라이언트 라이브러리이다
    2. Retrofit의 라이브러리 베이스이다

    [2] Retrofit

    1. type-safe한 HTTP 클라이언트 라이브러리이다
    2. Http 통신 시 OkHttp에 의존한다
    3. REST API 방식을 사용한다 (=http 설계시 지켜야 할 아키텍처)
    • 앱을 만들다 보면 서버에 있는 정보를 이용해야 함(http 통신 = 인터넷에 있는 정보를 가져오는 작업)
      변수를 넘기는 방법 2가지 존재
      1. get : 변수가 눈에 보임
      2. post : 변수가 눈에 안보임
    • Anotation을 사용함
    • java interface에 대한 개념이 있어야 한다. interface로 통신하는 부분
    • interface 1개와 class 1개가 필요
    • 통신할 때 필요한 interface를 생성 (interface 내 annotation을 사용하여 통신할 httpMethod를 적는다)
    • public static final String API_URL= " "; : API_URL 상수를 만들어 서버 주소를 적음
      0@ClippedImage
    • @get("api 주소") : @get을 적고 괄호 안에 통신할 url을 적음
    • Call함수이름(@query("변수이름"), 안드로이드에서 보낼 변수);
      1@ClippedImage

즉, Retrofit code에 OkHttp 클라이언트가 선언되어 있다
= Retrofit을 쓰면 OkHttp도 쓴다고 볼 수 있다
= Retrofit이 OkHttp를 포함한다고 볼 수 있다
= OkHttp를 베이스로 Retrofit이 만들어졌다

  1. OkHttp

    1. 쓰레드를 써가면서 네트워크를 구축하지 않아도 됨
    2. 유명 라이브러리 Volley, Retrofit, OkHttp3 등이 존재
    3. 네트워크 구축시 필요한 쿠키, 캐시 등을 지원
    4. 예외 상황에 대한 풍부한 리소스 제공
    • 사용방법
      1. Gradle에 추가
        2@ClippedImage
      2. 사용
        요청할 body를 만들고 add에 왼쪽 id는 php에서 post로 미리 받기로 정의된 것, 오른쪽id는 해당 안드로이드에서 보내줄 변수
        3@ClippedImage
        4@ClippedImage
        만든 body를 어디에 요청할지 처리하는 작업이 필요하다
        url과 해당 url에 보낼(post 방식) body를 요청사항에 넣고 request 만든다
        5@ClippedImage
        id에 보낸 결과를 php가 json형태로 반환한 것을 받아오므로 callback사용
        6@ClippedImage
        callback정의
        7@ClippedImage
        응답형식을 string으로 받고 있다
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant