=================================
=================================
=================================
출처: http://everlikemorning.tistory.com/tag/HttpURLConnection
HttpURLConnection을 이용해서 통신프로그램을 작성하던중... POST방식을 네이버 검색해보니 일부 블로그에서
파라미터를 아래와 같은 방식 처리하는 예제가 있었다.
String param = "xx="+xx+"&xxx="+xxx+"&xxxx="+xxxx; URL targetURL = new URL(http://xxx.xxx.xxx.xxx/xxx/xxx.html); ... 중략 ... PrintWriter out = new PrintWriter(hurlc.getOutputStream()); out.println(param); out.flush(); out.close(); |
해본 결과 PrintWriter 쓰면 안된다. (이것 때문에 또 삽질을....역시 네이버는 너무 믿으면 안된다 ㅡ_ㅡ;;;)
구글링을 해본결과 아래와 같이 OutputStream을 써야한다.
String param = "xx="+xx+"&xxx="+xxx+"&xxxx="+xxxx;
URL targetURL = new URL(http://xxx.xxx.xxx.xxx/xxx/xxx.xxx);
URLConnection urlConn = targetURL.openConnection();
HttpURLConnection hurlc = (HttpURLConnection) urlConn;
// 헤더값을 설정한다.
hurlc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
// 전달 방식을 설정한다. POST or GET, 기본값은 GET 이다.
hurlc.setRequestMethod("POST");
// 서버로 데이터를 전송할 수 있도록 한다. GET방식이면 사용될 일이 없으나, true로
// 설정하면 자동으로 POST로 설정된다. 기본값은 false이다.
hurlc.setDoOutput(true);
// 서버로부터 메세지를 받을 수 있도록 한다. 기본값은 true이다.
hurlc.setDoInput(true);
hurlc.setUseCaches(false);
hurlc.setDefaultUseCaches(false);
//안됨...
//PrintWriter out = new PrintWriter(hurlc.getOutputStream());//out.println(param);//out.flush();//out.close();
OutputStream opstrm = hurlc.getOutputStream();
opstrm.write(param.getBytes());
opstrm.flush();
opstrm.close();
String buffer = null;
BufferedReader in =
new BufferedReader(new InputStreamReader
(hurlc.getInputStream()));
while ((buffer = in.readLine()) != null) {
ecgResultXML += buffer;
}
in.close();
=================================
=================================
=================================
'JAVA' 카테고리의 다른 글
부모창에서 자식창의 로드가 완료된 후 함수 호출하기 (0) | 2011.04.01 |
---|---|
[java] 자바 파일 저장해보기 (0) | 2011.04.01 |
[java] 이클립스로 Jar가 포함된 실행 가능한 Jar 만들기 (0) | 2011.03.23 |
[java] Java sizeof 구현해보기 jdk5 이상가능 (0) | 2011.03.23 |
[java] URLConnect 관련 질잡 모음 (0) | 2011.03.23 |