최신 게시글(JAVA)
2022.05.02 / 13:14

HttpURLConnection클래스로 웹페이지 POST 호출 방법

코코로
추천 수 34

URL url = new URL("주소");

// URL 클래스 생성


String param = URLEncoder.encode("pdata", "UTF-8") + "=" + URLEncoder.encode(pdata, "UTF-8");

// 파라미터 정의


byte[] postParam = param.getBystges("UTF-8");    

// 파라미터 인코딩


HttpURLConnection con = (HttpURLConnection)url.openConnection();

// 해당 주소의 페이지로 접속을 하고, 단일 HTTP 접속을 하기 위해 캐스트 한다.


con.setRequestMethod("POST");

// POST 방식으로 요청한다.


con.setRequestProperty("Content-Length", String.valueOf(postParam.length));

// 요청 헤더 정의(Content-Length를 매개변수로 전달)


con.setDoOutput(true);

// setDoOutput() 메소드는 URLConnection의 출력 스트림을 사용할지의 여부를 나타낸다. POST방식은 스트림 기반의 데이터 전송 방식이기 때문에 setDoOutput(true)를 실행하여 URLConnection의 출력 스트림을 사용하도록 지정해야 한다.


OutputStream ops = con.getOutputStream();

// 새로운 OutputStream에 요청할 OutputStream을 넣는다.


ops.write(postParam);

// wirte메소드로 파라미터 값들을 바이트단위로 요청


ops.flush();

// 스트림의 버퍼를 비운다.


ops.close();

// 스트림을 닫는다.


jsonObject = (JSONObject)parser.parse(new InputStreamReader(con.getInputStream()));

// 특정 상황에 따라 사용(서버 응답 결과를 보여주기 위해서 필요)


con.disconnect

// 접속 종료


입력할 데이터를 웹서버에 전달하기 위해서 구현된 소스 입니다.

상황에 따라서 참고하여 구현 하세요.


[출처 및 참고] http://ibabo.tistory.com/266

http://javacan.tistory.com/entry/35



출처: https://devesim.tistory.com/25?category=574758 [데브심의 개발자 레퍼런스]