JAVA/소스코드
[JAVA] URLConnection 사용해서 POST 방식으로 전송하기/StringBuilder/BufferedWriter/InputStream/BufferedReader/InputStreamReader 사용
nineDeveloper
2015. 12. 2. 16:40
[JAVA] URLConnection 사용해서 POST 방식으로 전송하기
StringBuilder/BufferedWriter/InputStream/BufferedReader/InputStreamReader
URL url = null; URLConnection urlconnection = null; try { //URL 주소 String domain =http://aaa.aaa.aaa/; String route = "/bbb/ccc"; url = new URL((new StringBuilder()).append(domain).append(route).toString()); // StringBuilder : 문자열 변경이 쉬운 StringBuilder 클래스를 사용, // StringBuilder 개체는 문자열의 확장을 수용하기 위해 버퍼를 유지, 관리 urlconnection = url.openConnection();
// 해당 URL에서 페이지 정보를 가져옴 ((HttpURLConnection)urlconnection).setRequestMethod("POST"); // Post방식 : 스트림을 통해서 파라미터 전송, // 서버로 데이터를 전송할 수 있도록 한다.
// get방식이면 사용될 일이 없으나, true로 설정하면 자동으로 Post로 설정, 기본값은 false; urlconnection.setDoOutput(true); // 출력 스트림 사용 여부 urlconnection.setDoInput(true); // 입력 스트림 사용 여부 urlconnection.setUseCaches(false); // 캐시에 저장된 결과가 아닌 동적으로 그 순간에 생성된 결과를 읽도록, //파라미터를 전송하는 경우 대부분 웹 페이지의 결과가 그 순간 순간 파라미터의 값에 따라 달라지기 때문. urlconnection.setRequestProperty("Content-Type", "text/json"); urlconnection.connect(); BufferedWriter bufferedwriter = new BufferedWriter(
new OutputStreamWriter(urlconnection.getOutputStream(), "ISO-8859-1")); //urlconnection.getOutputStream(): 해당 URL에 대한 출력 스트림을 구함. //OutputStreamWriter(스트림,인코딩) : 문자 스트림에서 바이트 스트림으로 변환 bufferedwriter.write(datas); bufferedwriter.flush(); InputStream inputstream = urlconnection.getInputStream(); BufferedReader bufferedreader = new BufferedReader(new InputStreamReader(inputstream, "ISO-8859-1")); String result = bufferedreader.readLine(); inputstream.close(); bufferedreader.close(); bufferedwriter.close(); /* * Stream : 일반적으로 데이터,패킷,비트 등의 일련의 연속성을 갖는 흐름을 의미 * * BufferedReader / BufferedWriter * 문자 입력 스트림으로부터 문자를 읽어 들이거나 문자 출력 스트림으로 문자를 내보낼 때
* 버퍼링을 함으로써 문자, 문자 배열, 문자열 라인 등을 보다 효율적으로 처리할 수 있도록 해준다. * * InputStreamReader / OutputStreamWriter * 바이트 스트림에서 문자 스트림으로, 문자 스트림에서 바이트 스트림으로 변환을 제공하는 입출력 스트림, * 사용하는 경우는 한 문자씩 읽지만
* 버퍼링을 하게 되면 입출력 스트림으로부터 미리 버퍼에 데이터를 갖다 놓기 때문에 보다 효율적으로 입출력할 수 있다. * * BufferedReader / BufferedWriter는 BufferedInputStream / BufferedOutputStream과 기능이 비슷하지만, * BufferedInputStream / BufferedOutputStream은 바이트 단위의 처리, * BufferedReader / BufferedWriter는 문자(Char) 단위 처리라는 차이가 있다. */
|