1

サイトにログインして、そのサイトの一部のページの 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 を取得するにはどうすればよいですか?

4

2 に答える 2

0

よくわかりませんが、getSession().getId(); を使用できる HttpServletRequest インターフェイスを使用できます。セッションIDを取得します。私は間違っているかもしれません。

于 2013-11-11T07:10:03.657 に答える