Notice
Recent Posts
Recent Comments
Link
투케이2K
78. (AndroidStudio/android/java) Volley 라이브러리 사용해 POST BODY JSON 방식으로 요청 및 응답 값 확인 실시 본문
Android
78. (AndroidStudio/android/java) Volley 라이브러리 사용해 POST BODY JSON 방식으로 요청 및 응답 값 확인 실시
투케이2K 2021. 3. 3. 10:39/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : AndroidStudio
개발 언어 : java
/* =========================== */
/* =========================== */
[소스 코드]
//======== [build.gradle(Module:app)] ========
implementation 'com.android.volley:volley:1.1.0'
//======== [AndroidManifest.xml] ========
<uses-permission android:name="android.permission.INTERNET"/>
application 내부 : android:usesCleartextTraffic="true"
//======== [java 메소드 호출] ========
//TODO import com.android.volley.Response; 를 상속받아야 합니다
getRequestVolleyPOST_BODY_JSON("http://jsonplaceholder.typicode.com/posts");
//======== [java 메소드 정의] ========
public void getRequestVolleyPOST_BODY_JSON(final String url){
//TODO 데이터 Request 객체 생성
RequestQueue queue = Volley.newRequestQueue(this);
//TODO 파라미터값 선언 실시
JSONObject jsonBodyObj = new JSONObject();
try{
jsonBodyObj.put("userId","1");
jsonBodyObj.put("id","1");
}catch (JSONException e){
e.printStackTrace();
}
final String requestBody = String.valueOf(jsonBodyObj.toString());
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_Main > getRequestVolleyPOST_BODY_JSON() 메소드 : Volley POST_BODY_JSON 요청 실시]");
Log.d("","\n"+"["+"요청 주소 - "+String.valueOf(url)+"]");
Log.d("","\n"+"["+"전송 값 - "+String.valueOf(jsonBodyObj.toString())+"]");
Log.d("","\n"+"["+"전송 타입 - "+String.valueOf("application/json")+"]");
Log.w("//===========//","================================================");
Log.d("---","---");
//TODO 데이터 Response 객체 생성
JsonObjectRequest request = new JsonObjectRequest(Request.Method.POST, url, null,
//TODO 데이터 전송 요청 성공
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("---","---");
Log.w("//===========//","================================================");
Log.d("","\n"+"[A_Main > getRequestVolleyPOST_BODY_JSON() 메소드 : Volley POST_BODY_JSON 요청 응답]");
Log.d("","\n"+"["+"응답 전체 - "+String.valueOf(response.toString())+"]");
Log.w("//===========//","================================================");
Log.d("---","---");
}
},
//TODO 데이터 전송 요청 에러 발생
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d("---","---");
Log.e("//===========//","================================================");
Log.d("","\n"+"[A_Main > getRequestVolleyPOST_BODY_JSON() 메소드 : Volley POST_BODY_JSON 요청 실패]");
Log.d("","\n"+"["+"에러 코드 - "+String.valueOf(error.toString())+"]");
Log.e("//===========//","================================================");
Log.d("---","---");
}
})
//TODO 헤더값 선언 실시 및 Body 데이터 바이트 변환 실시
{
@Override
public Map<String, String> getHeaders() throws AuthFailureError{
HashMap<String, String> headers = new HashMap<String, String>();
headers.put("Content-Type", "application/json");
return headers;
}
@Override
public byte[] getBody() {
try {
if (requestBody != null && requestBody.length()>0 && !requestBody.equals("")){
return requestBody.getBytes("utf-8");
}
else {
return null;
}
} catch (UnsupportedEncodingException uee) {
return null;
}
}
};
request.setShouldCache(false);
queue.add(request);
}
/* =========================== */
[결과 출력]
* =========================== */
반응형
'Android' 카테고리의 다른 글
Comments