HtmlView라는 프로그램을 이용해서
포스트 방식의 파라미터를 알아냈습니다.
주소는
http://library.snut.ac.kr/dlsearch/dlsearch/TOTWSearchList.asp
이것이고
파라미터는
SearchItem=%1ETOTAL&Lm01=%1ETOTAL&SysKey=SYSTOT&SysDiv=TOT&SearchMethod=FRNT&ViewSearchMethod=%C0%FC%B9%E6%C0%CF%C4%A1&ViewSysDiv=&TitleImageName=search_title01.gif&MainMenuNo=185&SearchQuery=%28%5Bjava%2CTOT00%2C1%2C0%2C1%5D%29+AND+NOT+%5B1%2CTOT00%2C3%2C25%2C3%5D&ViewQuery=%5B%C0%FC%B9%E6%C0%CF%C4%A1%2F%C5%EB%C7%D5%3Ajava%5D&SearchLocation=TOTWSearchMain&ComMethod=&ViewType=%C5%EB%C7%D5&SearchMainHisToGo=-3
이것입니다.
이 두개를 ?로 연결해서 주소창에 입력하면
안드로이드라는 책의 목록을 가져옵니다.
하지만 책을 비롯해 인터넷에 있는 모든 포스트 방식의 소스를 이용해도
같은 결과가 나오지 않네요.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
public class Test {
public void start(){
try{
String data = "SearchItem=%1ETOTAL&Lm01=%1ETOTAL&SysKey=SYSTOT&SysDiv=TOT&SearchMethod=FRNT&ViewSearchMethod=%C0%FC%B9%E6%C0%CF%C4%A1&ViewSysDiv=&TitleImageName=search_title01.gif&MainMenuNo=185&SearchQuery=%28%5Bjava%2CTOT00%2C1%2C0%2C1%5D%29+AND+NOT+%5B1%2CTOT00%2C3%2C25%2C3%5D&ViewQuery=%5B%C0%FC%B9%E6%C0%CF%C4%A1%2F%C5%EB%C7%D5%3Ajava%5D&SearchLocation=TOTWSearchMain&ComMethod=&ViewType=%C5%EB%C7%D5&SearchMainHisToGo=-3";
String str = "";
URL url = new URL("http://library.snut.ac.kr/dlsearch/dlsearch/TOTWSearchList.asp");
URLConnection urlConn = url.openConnection();
HttpURLConnection hurlc = (HttpURLConnection)urlConn;
hurlc.setRequestProperty("Content-type", "application/x-www-form-urlencoded");
hurlc.setRequestMethod("POST");
hurlc.setDoOutput(true);
hurlc.setDoInput(true);
hurlc.setDefaultUseCaches(false);
OutputStream out = hurlc.getOutputStream();
out.write(data.getBytes());
out.flush();
out.close();
BufferedReader rd = new BufferedReader(new InputStreamReader(hurlc.getInputStream()));
// StringBuilder buff = new StringBuilder();
String line;
while((line = rd.readLine())!= null){
str+=line+"\n";
}
rd.close();
System.out.println(str);
}
catch(Exception e){
}
}
}
지금 현재 안되는 소스는 위와 같습니다.
브라우저의 입력창에 ?를 연결자로 입력하면 해당결과가 나오지만
위와 같은 소스로 분석하면 자꾸 다른 페이지(전송방법이 잘못되었거나 파라미터가 올바르지 않다고...)가 나오네요
해결책좀 부탁드립니다! ㅜ.ㅜ