티스토리 뷰
통신을 위한 volley 추가
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>
댓글