본문 바로가기
Android Studio

[Android Studio] Volley 라이브러리를 이용한 POST 통신 방법 (body에 json 보내기)

by dong_su 2024. 1. 3.

 

그 동안은 Volley 라이브러리로 네트워크 통신할 때 GET 방식과 body는 null로만 보냈었는데, 

네이버 파파고 api 이용을 위해 공식문서를 보면서 POST 방식으로 body에 데이터를 담아 보내봤다.

RequestQueue queue = Volley.newRequestQueue(MainActivity.this);

String url = "https://openapi.naver.com/v1/papago/n2mt";

JSONObject body = new JSONObject();
try {
    body.put("source", "ko");
    body.put("target", target);
    body.put("text", sentence);
} catch (JSONException e) {
    return;
}

JsonObjectRequest request = new JsonObjectRequest(
        Request.Method.POST,
        url,
        body,
        new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {
                try {
                    String result = response.getJSONObject("message").getJSONObject("result").getString("translatedText");
                    txtResult.setText(result);

                    History history = new History(sentence, result, target);
                    historyArrayList.add(0, history);

                } catch (JSONException e) {
                    return;
                }
            }
        },
        new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                return;
            }
        }
)

queue.add(request);
  1. JsonObjectRequest()의 첫번째 인자에 Request.Method.POST 작성한다. (POST 방식으로 요청)
  2. 세번째 인자에 json 형식으로 데이터를 보내야 한다. 그러므로 JSONObject 객체를 생성한다.
  3. json 객체이기 때문에 put() 함수로 key, value 형식으로 데이터를 넣는다. 파파고 API 설명서에 나와 있는
  4. 필수 파라미터와 해당 값을 넣어준다. 그 후 body 변수를 세번째 인자에 넣으면 된다.