サイトにログインして、そのサイトの一部のページの HTML データを抽出しようとしています。問題は、サイトの各リンク/ページに現在のログインのセッション ID が含まれていることです。例: リンクを右クリックして新しいタブで開くと、URL は次のようになります。
http://02.iswhm.jp/admin/adm_user_search.php?sex=0& PHPSESSID=xsd6flqcccj24j5evv8ussp76mr1
JAVA から、セッション ID を指定しないと、html データを取得できません。例えば:
String url = "http://02.iswhm.jp/admin/adm_user_search_result.php";
List<NameValuePair> nameValuePairs = new ArrayList<>(1);
nameValuePairs.add(new BasicNameValuePair("loginstatus[5]", "90"));
nameValuePairs.add(new BasicNameValuePair("loginstatus[6]", "99"));
nameValuePairs.add(new BasicNameValuePair("PHPSESSID", "xsd6flqcccj24j5evv8ussp76mr1"));
…………
httpclient.getCredentialsProvider().setCredentials(
new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT, AuthScope.ANY_REALM),
new UsernamePasswordCredentials("xxx", "xxxxx"));
HttpPost httpget = new HttpPost(uri);
httpget.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httpget);
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent(),"SJIS"));
HttpEntity entity = response.getEntity();
String line = "";
while ((line = rd.readLine()) != null) {
temp+=line+"\n";
}
PHPSESSID を指定しないと、上記のコードは機能しません。
JAVA の HTTP API を使用してセッション ID を取得するにはどうすればよいですか?