본문 바로가기

Android/NetWork

안드로이드/Android HttpUrlConnection JSON 으로 Request, Response 하기

안드로이드/Android HttpUrlConnection JSON 으로 Request, Response 하기



HttpUrlConnection JSON 방식으로 Request, Response 하는 방법에 대해 알아 보겠습니다.


 
    HttpURLConnection 	conn    = null;
	
	OutputStream          os   = null;
	InputStream           is   = null;
	ByteArrayOutputStream baos = null;
	
	conn = (HttpURLConnection)url.openConnection();
	conn.setConnectTimeout(CONN_TIMEOUT * 1000);
	conn.setReadTimeout(READ_TIMEOUT * 1000);
	conn.setRequestMethod(POST);
	conn.setRequestProperty("Cache-Control", "no-cache");
	conn.setRequestProperty("Content-Type", "application/json");
	conn.setRequestProperty("Accept", "application/json");
	conn.setDoOutput(true);
	conn.setDoInput(true);

	JSONObject job = new JSONObject();
	job.put("phoneNum", "01000000000");
	job.put("name", "test name");
	job.put("address", "test address");
	
	os = conn.getOutputStream();
	os.write(job.toString().getBytes());
	os.flush();
	
	String response;
	
	int responseCode = conn.getResponseCode();

	if(responseCode == HttpURLConnection.HTTP_OK) {

		is = conn.getInputStream();
        baos = new ByteArrayOutputStream();
        byte[] byteBuffer = new byte[1024];
        byte[] byteData = null;
        int nLength = 0;
        while((nLength = is.read(byteBuffer, 0, byteBuffer.length)) != -1) {
            baos.write(byteBuffer, 0, nLength);
        }
        byteData = baos.toByteArray();
        
        response = new String(byteData);
        
        JSONObject responseJSON = new JSONObject(response);
        Boolean result = (Boolean) responseJSON.get("result"); 
        String age = (String) responseJSON.get("age");
        String job = (String) responseJSON.get("job");
		
        Log.i(TAG, "DATA response = " + response);
	}




타입에대한 자세한 설명은,