ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Android 실습 (8)
    Android 2022. 7. 15. 10:43

    < Gradle Scripts의 build.gradle (Module) >

    맨 밑에 dependencies 부분에 아래와 같은 코드를 추가해줍니다

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

    코드를 추가한 후 상단에 Sync Now를 클릭해줍니다

     

    < AndroidManifest.xml >

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.example.ex_0715">
    
        <!-- Volley 사용시 필요한 인터넷 권한 지정하기 -->
        <uses-permission android:name="android.permission.INTERNET" />
    
        <!-- url의 주소가 http / https -->
    
        <application
            android:allowBackup="true"
            android:dataExtractionRules="@xml/data_extraction_rules"
            android:fullBackupContent="@xml/backup_rules"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/Theme.Ex_0715"
    
            android:usesCleartextTraffic="true"
    
            tools:targetApi="31">
    
            <activity
                android:name=".MainActivity"
                android:exported="true">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>

    주석으로 설명 작성한 부분의 코드를 추가해줍니다

     

    이클립스에서 Dynamic Web Project를 만듭니다

     

    url 주소를 복사해서 Android의 < MainActivity.java >의 url에 붙여넣기합니다.

     

     < MainActivity.java >

    package com.example.ex_0715;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    import android.widget.Toast;
    
    import com.android.volley.Request;
    import com.android.volley.RequestQueue;
    import com.android.volley.Response;
    import com.android.volley.VolleyError;
    import com.android.volley.toolbox.StringRequest;
    import com.android.volley.toolbox.Volley;
    
    public class MainActivity extends AppCompatActivity {
    
        EditText txt_url;
        Button btn_req;
        TextView txt_result;
    
        // Volley 사용시 꼭 필요한 객체 선언!
        RequestQueue requestQueue; // 요청을 서버에 전달(보내주는) 기능
        StringRequest request; // 요청과 응답에 대한 정보를 담는 기능
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            txt_url = findViewById(R.id.txt_url);
            btn_req = findViewById(R.id.btn_req);
            txt_result = findViewById(R.id.txt_result);
    
            // requestQueue 객체 초기화 하기!
            // requestQueue = Volley.newRequestQueue(getApplicationContext());
            requestQueue = Volley.newRequestQueue(MainActivity.this);
    
            btn_req.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    // 요청하고자 하는 url 주소 가져오기
                    String url = txt_url.getText().toString();
    
                    // 1. 전송 방식 -> GET/POST
                    // 2. 요청할 주소
                    // 3. 응답에 성공시 수행할 로직을 작성
                    // 4. 응답 실패시 수행할 로직 작성
    
                    request = new StringRequest(
                            Request.Method.GET,
                            //url,
                            "http://172.30.1.41:8081/AndroidServer/AndroidTest",
                            new Response.Listener<String>() {
                                @Override
                                public void onResponse(String response) {
                                    // 응답 성공시 진행할 로직 작성
                                    txt_result.setText(response);
                                }
                            },
                            new Response.ErrorListener() {
                                @Override
                                public void onErrorResponse(VolleyError error) {
                                    // 응답 실패시 진행할 로직 작성
                                    Toast.makeText(getApplicationContext(),
                                            error.toString(),
                                            Toast.LENGTH_SHORT).show();
                                }
                            }
                    );
    
                    // 서버에 전달하기 위한 작업 ★★★
                    requestQueue.add(request);
    
                }
            });
    
        }
    }

     

    'Android' 카테고리의 다른 글

    Android 실습 (10)  (0) 2022.07.19
    Android 실습 (9)  (0) 2022.07.18
    Android 실습 (7)  (0) 2022.07.14
    Android 실습 (6)  (0) 2022.07.14
    Android 실습 (5)  (0) 2022.07.13

    댓글

Designed by Tistory.