먼저 URLConnection 객체를 생성한다.
URL url = new URL("http://example.dimdol.com/example.jsp");
URLConnection con = url.openConnection();
URLConnection con = url.openConnection();
URLConnection 객체 setRequestProperty 메소드로 HTTP 헤더 정보를 설정한다.
con.setRequestProperty("Accept-Language", "ko-kr,ko;q=0.8,en-us;q=0.5,en;q=0.3");
URLConnection 객체 setDoOutput 메소드로 POST 요청임을 설정한다.
con.setDoOutput(true);
요청 파라미터는 name=value 패턴으로 지정하고 두 개 이상은 &을 사용해서 연결한다.
String parameter = URLEncoder.encode("name", "UTF-8") + "=" URLEncoder.encode("dimdol", "UTF-8");
parameter += "&" + URLEncoder.encode("age", "UTF-8") + "=" URLEncoder.encode("35", "UTF-8");
parameter += "&" + URLEncoder.encode("age", "UTF-8") + "=" URLEncoder.encode("35", "UTF-8");
HTTP 요청을 한다.
OutputStreamWriter wr = new OutputStreamWriter(con.getOutputStream());
wr.write(parameter);
wr.flush(); // 꼭 flush를 호출해야 한다.
wr.write(parameter);
wr.flush(); // 꼭 flush를 호출해야 한다.
응답 결과가 텍스트인 경우에는 다음과 같이 처리한다.
BufferedReader rd = null;
rd = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
String line = null;
while ((line = rd.readLine()) != null) {
// 로직 처리
}
rd = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
String line = null;
while ((line = rd.readLine()) != null) {
// 로직 처리
}
응답 결과가 XML인 경우에는 다음과 같이 처리한다.
DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(con.getInputStream());
// 이하 document를 이용해서 로직 처리
DocumentBuilder builder = builderFactory.newDocumentBuilder();
Document document = builder.parse(con.getInputStream());
// 이하 document를 이용해서 로직 처리
응답 헤더는 다음과 같이 확인할 수 있다.
String cookie = con.getHeaderField("Set-Cookie");
전체를 try/finally로 묶고 finally 절에서 OutputStreamWriter과 BufferedReader를 close한다.
No comments:
Post a Comment