안녕하십니까

제가 로그인이 필요한 페이지를 파싱을 하기위해서

httpclient 방식으로 아이디와 비밀번호를 보내고 로그인 시킨 후

쿠키를 받아서 로그인이 필요한 페이지에 추가시켜서 페이지 소스를 받아올려고 하는데

하는 도중 막혀서 이렇게 글을 쓰게 되었습니다.

해당 페이지에서 로그인후 개발자도구에서 직접 쿠키를 가져와서 소스에 적용 시킬시에는

로그인이 필요한 페이지를 긁어 오는것이 가능한데

소스에서 httpclient post 방식으로 아디 비번을 보내고 쿠키를 받아올시에는 로그인이 되지않은

쿠키값을 받아옵니다. 제가 밤새면서 나온결과는 혹시 홈페이지 자체에서 request가 안되는게 아닐까

하는 의심이 들었습니다. 혹시 잘아시는분있으면 소스와 홈페이지 보시고 조언좀해주시면

정말 감사하겠습니다...

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import javax.xml.transform.Source;

import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.CookieStore;
import org.apache.http.client.HttpClient;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.params.ClientPNames;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;


public class test {

public static void main(String arg[]){
Source source;
URL nURL;
List<Cookie> cookies;

StringBuilder html = new StringBuilder();

String cookie = "null";

HttpClient httpclient = new DefaultHttpClient();

HttpPost httppost = new HttpPost(""); // 쿠키를 가져올 login Form

try {

ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);

nameValuePairs.add(new BasicNameValuePair("userId", "xxxx")); // 홈페이지 소스에서 id name이 userId
nameValuePairs.add(new BasicNameValuePair("password", "xxxx"));

httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = httpclient.execute(httppost);

//cookies = httpclient.getCookieStore().getCookies();

ResponseHandler<String> responseHandler = new BasicResponseHandler();


System.out.println("Response from server: " + response.toString());//.substring(response.toString().indexOf("=")+1, response.toString().indexOf(";"))); // 로그인 이후의 쿠키 값
System.out.println("Response from server: " + response.toString().substring(response.toString().indexOf("=")+1, response.toString().indexOf(";"))); // 로그인 이후의 쿠키 값

cookie = response.toString().substring(response.toString().indexOf("=")+1, response.toString().indexOf(";")).trim();

} catch (ClientProtocolException e) {

} catch (IOException e) {

}

String url = ""; // 로그인 적용시 최종적으로 가져와야할 url

int checknum = 0;
ArrayList<String> use_power = new ArrayList<String>();


try {

nURL = new URL("url);
HttpURLConnection conn = (HttpURLConnection)nURL.openConnection();

if(conn != null){
conn.setConnectTimeout(10000);
conn.setUseCaches(false);
//conn.setRequestProperty("Cookie", "JSESSIONID="); // 홈페이지의 로그인후 실제 쿠키값 적용시 원하는 페이지 소스 긁어와짐.

conn.setRequestProperty("Cookie", "JSESSIONID="+cookie); // 쿠키가 로그인되어 인증되었다면 되어야 정상.
conn.setRequestProperty("Content-Type", "text/html; charset=euc-kr");
//conn.addRequestProperty("Cookie", cookie);

if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
BufferedReader br = new BufferedReader(
new InputStreamReader(conn.getInputStream()));
for(int i=0; i<15; i++){
String line = br.readLine();
System.out.println(line);

}catch(StringIndexOutOfBoundsException e2){

}catch(IndexOutOfBoundsException e3){

}
}
*/
}
//br.close();
}
conn.disconnect();
}



} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (StringIndexOutOfBoundsException e1){
e1.printStackTrace();
}

}
}

조언좀 해주시면 감사하겠습니다!