<GET>
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;
import org.json.JSONException;
import org.json.JSONObject;
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(MainActivity.this);
btn_req.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 요청하고자 하는 url 주소 가져오기
String data = txt_url.getText().toString();
// 1. 전송방식 -> GET/POST
// 2. 요청할 주소
// 3. 응답에 성공시 수행할 로직을 작성
// 4. 응답 실패시 수행할 로직 잘성
request = new StringRequest(
Request.Method.GET,
//url,
"http://172.30.1.33:8081/AndroidServer/AndroidTest?data=" + data,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject json = new JSONObject(response);
String result= json.getString("result");
// 응답 성공시 진행할 로직 작성
txt_result.setText(result);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// 응답 실패시 진행할 로직 작성
Toast.makeText(getApplicationContext(),
error.toString(),
Toast.LENGTH_SHORT).show();
}
}
);
// 서버에 전달하기 위한 작업 ★★★
requestQueue.add(request);
}
});
}
}
<POST>
package com.example.ex_0715;
import androidx.annotation.Nullable;
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.AuthFailureError;
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.JSONException;
import org.json.JSONObject;
import java.util.HashMap;
import java.util.Map;
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(MainActivity.this);
btn_req.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// 요청하고자 하는 url 주소 가져오기
String data = txt_url.getText().toString();
// 1. 전송방식 -> GET/POST
// 2. 요청할 주소
// 3. 응답에 성공시 수행할 로직을 작성
// 4. 응답 실패시 수행할 로직 잘성
request = new StringRequest(
Request.Method.POST,
//url,
//"http://172.30.1.33:8081/AndroidServer/AndroidTest?data=" + data,
"http://172.30.1.33:8081/AndroidServer/AndroidTest",
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONObject json = new JSONObject(response);
String result= json.getString("result");
// 응답 성공시 진행할 로직 작성
txt_result.setText(result);
} catch (JSONException e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
// 응답 실패시 진행할 로직 작성
Toast.makeText(getApplicationContext(),
error.toString(),
Toast.LENGTH_SHORT).show();
}
}
){
// post 방식일때 데이터를 추가하기 위한 별도의 메소드가 필요하다!
// getParams() 입력!
@Nullable
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String,String> params = new HashMap<>();
params.put("data", data);
return params;
}
};
// 서버에 전달하기 위한 작업 ★★★
requestQueue.add(request);
}
});
}
}
<이클립스>
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/AndroidTest")
public class AndroidTest extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("서버 요청 들어옴!");
String data = request.getParameter("data");
System.out.println("요청된 값 : " + data);
response.setContentType("text/plain; charset=utf-8");
PrintWriter out = response.getWriter();
out.print("{\"result\":\"결과확인\"}");
}
}
'안드로이드' 카테고리의 다른 글
회원가입 (0) | 2022.07.19 |
---|---|
Thread란? (0) | 2022.07.19 |
Volley (0) | 2022.07.15 |
Adapter View (0) | 2022.07.14 |
데이터 나열 및 삭제 (0) | 2022.07.13 |