개발공부/안드로이드

안드로이드(앱)에서 PHP(서버)로 Http통신하는 방법 (Volley)

MyAlice 2021. 3. 30. 17:38
728x90

앱에서 PHP, 즉 서버로 통신하는방법. 

즉, HTTP 통신을 하는 방법들이 있다.

- HttpURLConnection

- HttpClient

- Volley

- Retrofit

 

그 중에서 내가 가장 즐겨쓰고, 초보에게 쉬운 방법이 있다.

( 며칠후, 난 volley 를 쓰다가 retrofit 으로 넘어갔다.. 이유는 밑에서 ,, ) 

 

바로 Volley 를 쓰는것이다. 단지 코딩 몇줄로 서버에 바로 통신할 수 있다. 

 

Volley란?

앱에서 서버와 http 통신을 할 때 HttpURLConnection을 사용하면 직접 요청과 응답을 받는 것이 가능하다.

하지만 직접 쓰레드를 구현해야 하며, 기본적인 코드 양 또한 많아 코드가 복잡해진다는 단점이 있다.

그래서 안드로이드에서는 쉽고 빠른 http 통신을 위해 Volley 라이브러리를 제공하고 있다.

 

즉, 안드로이드 내에서 자체적으로 통신을 위한 라이브러리를 제공하고 있어, 용량이 작고 빠른 실행속도를 자랑한다. 

 

 

Volley를 통해 http 통신 사용하는 방법

 

1. 안드로이드 스튜디오에 build.gradle 의 dependencies에 Volley 를 추가한다. 

implementation 'com.android.volley:volley:1.2.0'

 

2. 안드로이드 스튜디오에 AndroidManifest.xml에 uses-permission 의 Internet 을 추가한다. 

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

3. Java 파일을 생성하여, 내부 class 를 하나 만든 후 통신 메소드를 만든다. 

난 CheckRV라는 클래스를 생성하였으며, POST 방식으로 서버에 객체들을 전달한다. 

파란부분에는 결과값이 나오는 구간이며, 빨간부분은 객체의 명과 어떤객체를 보낼것인지 쓰는구간이다. 

 

private void CheckRV(final String FolloweorFollowing) { // 팔로우랑 팔로워 리스트 넣어놓기
StringRequest request = new StringRequest(Request.Method.POST, "http://" + IP_ADDRESS + "/main/GetFollororFollowingList.php",
new Response.Listener<String>() {

@Override
public void onResponse(String response) {


Log.d("PersonListInfo",response); // 결과값나오는 구간

}

}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {

Log.d("error",error.toString());

}

}){
@Override
protected Map<String, String> getParams() throws AuthFailureError {

Map<String, String> params = new HashMap<>(); //현재 POST 방식으로 보낼 Object 들
// 총 3개를 보낸다.
params.put("FolloweorFollowing", FolloweorFollowing);
params.put("User_Id", User_Id);
params.put("Profile_User_Id", Profile_User_Id);

return params;

}

};

RequestQueue requestQueue = Volley.newRequestQueue(Mypage_Post_Follow.this);
requestQueue.add(request); // 전달하기

}

 

그렇게 되면, 원활하게 몇글자의 코딩만으로, 서버 에서 받아온 결과값을 받을 수 있을것이다. 

 

하지만, 추후에 안 사실이 있었다.

많은 사람들이 서버 통신을 할때 Volley 가 아닌 Retrofit 을 쓴다고 한다. 그 이유의 대부분은 속도인데, 

많은 데이터량을 받아올때는 retrofit 이 다른 것들보다 현저히 빠르게 받아올 수 있는것을 알 수 있다. 

결론은 retrofit 방식도 배우는건 나쁘지 않다고 본다 !! 

 

Okhttp 를 이용하는 건 ? 안드로이드(앱)에서 PHP(서버)로 Http통신하는 방법 

 

안드로이드(앱)에서 PHP(서버)로 Http통신하는 방법 (Okhttp)

- Post 방식 Okhttp를 통해 http 통신 사용하는 방법 1. 안드로이드 스튜디오에 build.gradle 의 dependencies에 Okhttp 를 추가한다. implementation "com.squareup.okhttp3:okhttp:4.9.1" 2. 안드로이드 스튜..

koreanalice.tistory.com

 

728x90