Я пытаюсь войти на сайт и извлечь данные HTML для некоторых страниц этого сайта. Проблема заключается в том, что каждая ссылка/страница сайта содержит идентификатор сеанса для текущего входа. Например: Если я правой кнопкой мыши на любую ссылку и Открыть в новом окне, URL-адрес выглядит следующим образом:Получение идентификатора сеанса для текущего входа в систему
http://02.iswhm.jp/admin/adm_user_search.php?sex=0&PHPSESSID = xsd6flqcccj24j5evv8ussp76mr1
С JAVA, если я не указать идентификатор сеанса, я не может получить 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.
Как я могу получить идентификатор сеанса с помощью API-интерфейса JAVA?
Веб-сайт, к которому я пытаюсь получить доступ, разработан php. Я не уверен, что это возможно с Servlet API. Пожалуйста, сделайте меня правильным, если я ошибаюсь. –
вы можете обратиться к следующему сайту (http://stackoverflow.com/questions/3136898/using-a-session-with-php-and-java) –