728x90
반응형
외국 PG(Payment gateway)를 안드로이드 앱에 넣으려고 하는데
테스트 소스에 통신하는 파트에 volley라는 것이 보였다.
볼리? 발리?
okhttp가 아니라?
이 기회에 까 보자.
참고 링크
- Jay의 블로그
- 깡샘의 토마토 (추천)
- Naver D2 블로그
- Ringster's Techblog
- benelog gist (추천)
- Ficus Kirkpatrick (추천)
- kimdohyeong gitbooks
설치 방법이나 개념 설명은 위 링크에도 충분히 찾을 수 있다.
개인적인 관심사 위주로 정리를 해보자면...
1. StringRequest와 같은 Request 클래스를 사용한다.
request 객체는 RequestQueue에 담아서 서버에 요청한다.
이때 StringRequest의 매개변수에는 4개의 서로 다른 형태의 정보(콜백 포함)를 담는다.
- HTTP method
- Server URL
- Result Callback
- Error Callback
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 | StringRequest stringRequest = new StringRequest(Request.Method.POST, Constants.JSON_URL, new Response.Listener<String>() { @Override public void onResponse(String response) { LoadingDialog.cancelLoading(); if (response != null && !response.equals("")) { vJsonStr= response; new GetData().execute(); } else { Log.e("ServiceHandler", "Couldn't get any data from the url"); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { LoadingDialog.cancelLoading(); } } ) RequestQueue requestQueue = Volley.newRequestQueue(this); requestQueue.add(stringRequest); | cs |
newRequestQueue 메소드 내부에 이미 queue.start()가 있기 때문에 담는 것으로 충분하다.
다만... 내부에서 어떻게 움직이는지는 나도 모르겠다.
누가 알면 알려주...세요.
newRequestQueue에 대한 추가 정보는 여기를 참고하면 좋다.
2. getParams() 역할
http method가 Post인 경우로 생각해보면 된다.
StringRequest 클래스에 담을 데이터를 getParams로 담는다고 보면 된다.
Map 객체에 담아서 서버로 보내준다.
1 2 3 4 5 6 7 | @Override protected Map<String, String> getParams() { Map<String, String> params = new HashMap<String, String>(); params.put(Params.COMMAND, "getJsonDataVault"); // 생략 return params; } | cs |
이거말고 확인할게 많은데
그건 진짜 제대로 활용할때 하는걸로.
(귀찮은거 아님. 진짜 아님.)
728x90
반응형
'Android, iOS' 카테고리의 다른 글
Intent로도 data를 넘기기 어려울 땐? ResultReceiver (0) | 2018.03.28 |
---|---|
EditText로인해 키보드가 나타나는 것을 막으려면? (0) | 2018.03.22 |
setFocusable. 키보드에도 관심을 가져줄 때. (0) | 2017.01.30 |
[Project Glue] Rest API와 로그인 체크 (0) | 2017.01.24 |
[Project Glue] 어떻게 Rest API를 썼을까? (하) (0) | 2017.01.18 |
Comment