티스토리 뷰

 

통신을 위한 volley 추가

src의 gradle에 볼리를 추가해준다

dependencies {
---중략 ---
    implementation 'com.android.volley:volley:1.1.1'

 

통신

       private void request(){  // 포스트 연습
            progressBar.setVisibility(View.VISIBLE);

            RequestQueue stringRequest = Volley.newRequestQueue(this);
            String url = "http://gvc.woobi.co.kr/test/post_test.php";

            StringRequest myReq = new StringRequest(Request.Method.POST, url,
                    successListener, errorListener) {
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String, String> params = new HashMap<String, String>();
                    params.put("id", "kkkaaabbb"); //일단 아이디만 던짐
                    params.put("passwd", "1234");
                    return params;
                }
            };
            myReq.setRetryPolicy(new DefaultRetryPolicy(3000, 0, 1f)

            );
            stringRequest.add(myReq);
        }

        Response.Listener<String> successListener = new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                progressBar.setVisibility(View.INVISIBLE);
            tv.setText(response); //결과창
            }
        };

+

<?
///겟방식
$id=$_POST['id']; //아이디를 던지고

$pass=$_GET['password'];//패스워드 받고

///포스트방식
echo $id."<br>";
echo $pass;
?>
더보기

전체코드

 

package com.example.volley;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;
import android.widget.TextView;

import com.android.volley.AuthFailureError;
import com.android.volley.DefaultRetryPolicy;
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;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {
        TextView tv;
        ProgressBar progressBar;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            tv = findViewById(R.id.tv);
            progressBar = findViewById(R.id.progressBar);

            findViewById(R.id.btn).setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    request();
                }
            });
        }

        private void request(){  //위 : 영화진흥위원회 api / 아래 : 포스트 연습
            progressBar.setVisibility(View.VISIBLE);

            RequestQueue stringRequest = Volley.newRequestQueue(this);
            String url = "http://gvc.woobi.co.kr/test/post_test.php";

            StringRequest myReq = new StringRequest(Request.Method.POST, url,
                    successListener, errorListener) {
                @Override
                protected Map<String, String> getParams() throws AuthFailureError {
                    Map<String, String> params = new HashMap<String, String>();
                    params.put("id", "kkkaaabbb");
                    params.put("passwd", "1234");
                    return params;
                }
            };
            myReq.setRetryPolicy(new DefaultRetryPolicy(3000, 0, 1f)

            );
            stringRequest.add(myReq);
        }

        Response.Listener<String> successListener = new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {


                progressBar.setVisibility(View.INVISIBLE);
            tv.setText(response);
            }
        };

        Response.ErrorListener errorListener = new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                progressBar.setVisibility(View.INVISIBLE);
            }
        };

    }

 

<?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"
    tools:context=".MainActivity">

    <Button
        android:id="@+id/btn"
        android:text="GET INFORMATION"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="60dp"
        android:textSize="30sp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <TextView
        android:id="@+id/tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="결과창"
        android:textSize="25sp"
        android:layout_below="@+id/btn"
        android:layout_marginTop="30dp"
        android:layout_centerHorizontal="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ProgressBar
        android:visibility="invisible"
        android:id="@+id/progressBar"
        android:layout_width="150dp"
        android:layout_height="150dp"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"/>

</RelativeLayout>
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함