상세 컨텐츠

본문 제목

[안드로이드] HTTP 통신 Volley 사용법 part1 - 간단한 요청 및 응답

안드로이드

by aries574 2022. 5. 7. 17:27

본문


이번 시간에는 HTTP통신을 쉽게 도와주는 Volley 라이브러리를 이용해서 API 호출,  데이터를 가져오는 방법에 대하여 알아보겠습니다. 


목차

1. 실행 화면

2. 권한 등록

3. 라이브러리 등록

4. 메인 화면 구성 activity_main.xml

5. 메인 코드 구현 MainActivity.java


1. 실행 화면

2. 권한 등록

 AndroidManifest.xml

 manifest 태그 안에 추가

 <uses-permission android:name="android.permission.INTERNET" />


3. 라이브러리 등록

build.gradle(Module:프로젝트명:app)

dependencies 괄호 안에 아래 코드를 넣어주시면 됩니다.

implementation 'com.android.volley:volley:1.2.1'

application 태그안에 아래 코드 추가(Http 호출 허용)

android:usesCleartextTraffic="true"

 

2020.12.19 - [안드로이드] - [안드로이드]라이브러리 찾아 등록하는 방법

 

[안드로이드]라이브러리 찾아 등록하는 방법

2020/12/18 - [안드로이드] - [안드로이드]TextSwitcher 글자변환 애니메이션 만들어보기 이번 시간에는 안드로이드 개발을 하면서 원하는 기능을 쓰기 위해 라이브러리를 찾아서 등록하는 방법을 알아

aries574.tistory.com

 


4. 메인 화면 구성 activity_main.xml

 - 설명 - 

 1. api 호출해서 전달받은 데이터를 텍스트뷰에 보여줍니다.

 2. 버튼을 클릭해서 api 호출을 합니다.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:textSize="15sp"
        android:id="@+id/textView"/>

    <Button
        android:id="@+id/send_btn"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Send"
        android:textSize="20sp"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="30dp"/>
</RelativeLayout>


5. 메인 코드 구현 MainActivity.java

 - 설명 -

 1. RequestQueue 객체를 생성합니다.

 2. RequestQueue 객체가 null이면 초기화를 해줍니다. 

 3. new StringRequest를 통해 HTTP통신을 합니다. 

 4. onResponse메서드를 통해 응답받은 데이터를 확인할 수 있습니다. 

 5. onErrorResponse메서드를 통해 오류를 확인할 수 있습니다. 

 6. RequestQueue 객체에 StringRequest 객체를 추가합니다. 

public class MainActivity extends AppCompatActivity  {

    //선언
    RequestQueue queue;

    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        textView = findViewById(R.id.textView);
        Button sendBtn = findViewById(R.id.send_btn);

        //초기화
        if(queue == null){
            queue = Volley.newRequestQueue(this);
        }

        String url = "https://api.bithumb.com/public/ticker/ETC_KR";

        //API 호출
        StringRequest stringRequest = new StringRequest(Request.Method.GET,
                url, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                //응답
                textView.setText(response);
            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                //에러
                textView.setText("에러: " + error.toString());
            }
        });

        //버튼 이벤트
        sendBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                queue.add(stringRequest);
            }
        });

    }//onCreate
}//MainActivity

2022.04.19 - [안드로이드] - [안드로이드] 커스텀 달력 만드는 방법 part1 화면 구성

 

[안드로이드] 커스텀 달력 만드는 방법 part1 화면 구성

이번 시간부터 커스텀 달력을 만들어 보겠습니다. 이번에는 메인화면 구성을 해보겠습니다. 목차 1. 실행 화면 2. 메인 화면 구성 activity_main.xml 1. 실행 화면 2. 메인 화면 구성 activity_main.xml  -.

aries574.tistory.com

2022.04.02 - [안드로이드] - [안드로이드] 같은 그림 찾기 게임 만드는 방법 part1 - 화면 구성

 

[안드로이드] 같은 그림 찾기 게임 만드는 방법 part1 - 화면구성

앞으로 같은 그림 찾기 게임을 만들어 보겠습니다. 이번 시간에는 화면 구성을 해보겠습니다. 이 게임은 8장의 카드가 있고, 2장의 카드를 뒤집어서 같은 그림이면 성공, 틀리면 맞을 때까지 하

aries574.tistory.com

2022.03.28 - [안드로이드] - [안드로이드] 숫자 맞추기 게임 Up&Down 만드는 방법 part1 - 화면 구성

 

[안드로이드] 숫자 맞추기 게임 Up&Down 만드는 방법 part1 - 화면 구성

 이번 시간에는 랜덤한 숫자를 생성하면, 사용자는 숫자를 입력해서 맞추는 게임을 만들어 보려고 합니다. 물론 무작정 맞추는 게 아니라 입력한 숫자가 랜덤한 숫자보다 큰지, 작은지 정도는

aries574.tistory.com

 

 

반응형

관련글 더보기

댓글 영역