2013-11-11 3 views
1

Я пытаюсь войти на сайт и извлечь данные 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?

ответ

1

Я не уверен, что это должен быть правильный путь, но вы всегда можете получить cookie с именем PHPSESSID, и значение будет иметь идентификатор. Это своего рода работа.

Дайте ему попробовать :-)

Благодарности

0

Я не уверен, но вы можете использовать HttpServletRequest интерфейс, в котором вы можете использовать getSession() GetId(). вы получите идентификатор сеанса. Возможно, я ошибаюсь.

+0

Веб-сайт, к которому я пытаюсь получить доступ, разработан php. Я не уверен, что это возможно с Servlet API. Пожалуйста, сделайте меня правильным, если я ошибаюсь. –

+0

вы можете обратиться к следующему сайту (http://stackoverflow.com/questions/3136898/using-a-session-with-php-and-java) –

Смежные вопросы