powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите пожалуйста
24 сообщений из 24, страница 1 из 1
Помогите пожалуйста
    #37765733
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть сайт, на нем лежат необходимые файлы, необходимо автоматически заходить на него и скачивать этот файл. Как это делается, вроде где-то уже статью такую читала, но не могу вспомнить где, помогите пожалуйста. Спасибо:)
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37765754
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Apache HttpClient
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37765800
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczApache HttpClient

вообще ситуация следующая, обычное (ручное скачивание) у нас происходит в несколько этапов:
1. заходим на страничку по https
2. вводим логин и пароль
3. перемещаемся в нужную вкладку, нажимаем кнопку "заказать", вылазит форма, в ней два поля и галочка, выбираем нужные значения из полей, ставим галочку, нажимаем кнопку, и только после этого у нас появляется другая кнопка "скачать файл".
реально ли такое автоматизировать?
дали бы пример еще, вообще счастлива была бы))
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37765805
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulT,

Без изменения логики - пожалуй, только Selenium
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37765819
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Хотя скорее всего, в итоге это будет просто ПОСТ запрос с параметрами, а его можно сделать и с помощью HttpClient.
Посмотрите с помощью firebug.
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37765900
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При авторизации, которую я делаю следующим образом:
Код: java
1.
2.
3.
4.
5.
      HttpHost targetHost = new HttpHost("www.бла бла.gov.ua", 443, "https");
DefaultHttpClient httpclient = new DefaultHttpClient();
httpclient.getCredentialsProvider().setCredentials(
        new AuthScope(targetHost.getHostName(), targetHost.getPort()),
        new UsernamePasswordCredentials("бла", "бла"));


выдает ошибку:
Код: java
1.
2.
3.
javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
        at com.sun.net.ssl.internal.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:352)
        at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:128)


Что я делаю не так? Логин и пароль правильные, т.к. только что на сайт зашла по ним
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766134
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может кто-то поможет?
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766165
output
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766221
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
outputJulT,

Возможно поможет
супер, помогло, авторизовалась, выдало в консоль код странички, там есть код формы:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<label for="id_username" class="required">Користувач:</label> <input id="id_username" type="text" name="username" maxlength="30" />
  </div>
  <div class="form-row">
    
    <label for="id_password" class="required">Пароль:</label> <input type="password" name="password" id="id_password" />
    <input type="hidden" name="this_is_the_login_form" value="1" />
    <input type="hidden" name="next" value="/client/" />
  </div>
  <div class="submit-row">
    <label>&nbsp;</label><input type="submit" value="Увійти" />


а как мне теперь отправить логин и пароль в эту форму, нужно сформировать пост запрос я так понимаю?
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766775
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять что ему нужно, пишу такой код:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
HttpPost post = new HttpPost("https://www.xxxxxx");

        
        List <NameValuePair> parameters = new ArrayList <NameValuePair>();
        parameters.add(new BasicNameValuePair("username", "xxx"));
        parameters.add(new BasicNameValuePair("password", "xxx"));

        UrlEncodedFormEntity sendentity = new UrlEncodedFormEntity(parameters, HTTP.UTF_8);
        post.setEntity(sendentity);

        HttpResponse response = client.execute(post);

        
        System.out.print("result="+this.convertStreamToString(response.getEntity().getContent()));
        client.getConnectionManager().shutdown();


Запускаю, получаю ответ:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="robots" content="NONE,NOARCHIVE">
  <title>403 Forbidden</title>
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; background:#eee; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; margin-bottom:.4em; }
    h1 span { font-size:60%; color:#666; font-weight:normal; }
    #info { background:#f6f6f6; }
    #info ul { margin: 0.5em 4em; }
    #info p, #summary p { padding-top:10px; }
    #summary { background: #ffc; }
    #explanation { background:#eee; border-bottom: 0px none; }
  </style>
</head>
<body>
<div id="summary">
  <h1>Forbidden <span>(403)</span></h1>
  <p>CSRF verification failed. Request aborted.</p>

  <p>You are seeing this message because this HTTPS site requires a 'Referer
   header' to be sent by your Web browser, but none was sent. This header is
   required for security reasons, to ensure that your browser is not being
   hijacked by third parties.</p>

  <p>If you have configured your browser to disable 'Referer' headers, please
   re-enable them, at least for this site, or for HTTPS connections, or for
   'same-origin' requests.</p>

</div>

<div id="explanation">
  <p><small>More information is available with DEBUG=True.</small></p>
</div>

</body>
</html>


Что я делаю не так, откликнитесь пожалуйста. Спасибо
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766797
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написано же - Referer header отсутствует. Добавьте.
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766859
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНаписано же - Referer header отсутствует. Добавьте.
добавила, если я правильно понимаю, то делается это так:
авторpost.addHeader("Referer", " https://www.zzzzzzzz.gov.ua/");
теперь другое пишет:
Код: java
1.
2.
 <h1>Forbidden <span>(403)</span></h1>
  <p>CSRF verification failed. Request aborted.</p>


причем стоит:
Код: java
1.
parameters.add(new BasicNameValuePair("csrfmiddlewaretoken","d11b2840d0328d58a87fd1c48e8301cb"));
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766865
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. вот так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta name="robots" content="NONE,NOARCHIVE">
  <title>403 Forbidden</title>
  <style type="text/css">
    html * { padding:0; margin:0; }
    body * { padding:10px 20px; }
    body * * { padding:0; }
    body { font:small sans-serif; background:#eee; }
    body>div { border-bottom:1px solid #ddd; }
    h1 { font-weight:normal; margin-bottom:.4em; }
    h1 span { font-size:60%; color:#666; font-weight:normal; }
    #info { background:#f6f6f6; }
    #info ul { margin: 0.5em 4em; }
    #info p, #summary p { padding-top:10px; }
    #summary { background: #ffc; }
    #explanation { background:#eee; border-bottom: 0px none; }
  </style>
</head>
<body>
<div id="summary">
  <h1>Forbidden <span>(403)</span></h1>
  <p>CSRF verification failed. Request aborted.</p>

</div>

<div id="explanation">
  <p><small>More information is available with DEBUG=True.</small></p>
</div>

</body>
</html>


на реферер уже не ругается, а вот на CSRF verification да
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766907
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTт.е. вот так:
на реферер уже не ругается, а вот на CSRF verification да
Ставьте HTTP-проксю и смотрите, чем ваши запросы отличаются от запросов браузера. Я обычно использую webscarab, но есть более простые вещи.
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766923
JulTCSRF verification failed. Request aborted.
Всегда одно и то же значение ставите? А может каждый раз надо новое правильное?

http://www.squarefree.com/securitytips/web-developers.html#CSRF
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37766936
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulT,

Мы такое делали с помощью WireShark . Сначала записывали весь диалог, а потом его воспроизводили с помощью Apache HttpClient.
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37767527
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
календареведJulTCSRF verification failed. Request aborted.
Всегда одно и то же значение ставите? А может каждый раз надо новое правильное?

http://www.squarefree.com/securitytips/web-developers.html#CSRF
фот форма этой страницы:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<div id="content-main">
<form action="" method="post" id="login-form"><div style='display:none'><input type='hidden' name='csrfmiddlewaretoken' value='a7460973d686bb83d7dc0bdb1a73fd17' /></div>
  <div class="form-row">
    
    <label for="id_username" class="required">Користувач:</label> <input id="id_username" type="text" name="username" maxlength="30" />
  </div>
  <div class="form-row">
    
    <label for="id_password" class="required">Пароль:</label> <input type="password" name="password" id="id_password" />
    <input type="hidden" name="this_is_the_login_form" value="1" />
    <input type="hidden" name="next" value="/client/" />
  </div>
  <div class="submit-row">
    <label>&nbsp;</label><input type="submit" value="Увійти" />
  </div>
</form>


судя по всему, проблема где-то здесь
Код: java
1.
<input type='hidden' name='csrfmiddlewaretoken' value='a7460973d686bb83d7dc0bdb1a73fd17'

value каждый раз генерится новое.
я все эти параметры и пытаюсь передать:
Код: java
1.
2.
3.
4.
5.
6.
List <NameValuePair> parameters = new ArrayList <NameValuePair>();
        parameters.add(new BasicNameValuePair("username", "av_mtu"));
        parameters.add(new BasicNameValuePair("password", "11111"));
        parameters.add(new BasicNameValuePair("csrfmiddlewaretoken","a7460973d686bb83d7dc0bdb1a73fd17"));
        parameters.add(new BasicNameValuePair("this_is_the_login_form","1"));
        parameters.add(new BasicNameValuePair("next","/client/"));


надо наверное точно посмотреть что шлет браузер и сравнивать после с тем, что отправляю я
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37767553
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JulTнадо наверное точно посмотреть что шлет браузер и сравнивать после с тем, что отправляю я
конечно.
Как можно программировать без отладки. Это нонсенс.
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37768143
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123JulTнадо наверное точно посмотреть что шлет браузер и сравнивать после с тем, что отправляю я
конечно.
Как можно программировать без отладки. Это нонсенс.
короче ничего у меня не получается.
а как закодить, если авторизация проходит не по средством вэб формы, а браузер высвечивает свое окошко для ввода логина и пароля. с формой понятно, есть параметры, я их заполняю и отправляю, а что делать в данном случае, когда браузер выдает окно?
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37768150
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37768159
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37768353
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz http://hc.apache.org/httpclient-3.x/authentication.html#Basic
ну что же это такое, делаю все как книжка пишет, и ничего не получается:
Код: java
1.
2.
3.
4.
5.
6.
7.
 response.getAllHeaders()=Date: Tue, 24 Apr 2012 11:04:56 GMT
 response.getAllHeaders()=Server: Apache/2.2.22 (FreeBSD) mod_ssl/2.2.22 OpenSSL/0.9.8e DAV/2
 response.getAllHeaders()=WWW-Authenticate: Basic realm="Need"
 response.getAllHeaders()=Content-Length: 401
 response.getAllHeaders()=Keep-Alive: timeout=5, max=100
 response.getAllHeaders()=Connection: Keep-Alive
 response.getAllHeaders()=Content-Type: text/html; charset=iso-8859-1


это я хидеры вывожу, для справки
далее:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
    DefaultHttpClient client = new DefaultHttpClient();
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(new AuthScope("http://files.xxxxxx.gov.ua", 80, AuthScope.ANY_REALM, "basic"),new UsernamePasswordCredentials("яяя", "яяя"));
client.setCredentialsProvider(credsProvider);
HttpGet post = new HttpGet("http://files.mtu.gov.ua/private/test");

try{
        HttpResponse response2 = client.execute(post);
        System.err.print("result="+this.convertStreamToString(response2.getEntity().getContent()));
.................


Пишет:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
result=<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>401 Authorization Required</title>
</head><body>
<h1>Authorization Required</h1>
<p>This server could not verify that you
are authorized to access the document
requested.  Either you supplied the wrong
credentials (e.g., bad password), or your
browser doesn't understand how to supply
the credentials required.</p>


Логин и пароль правильные, что ему не хватает?
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37768375
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьмите любой снифер и сравните данные, которые отправляет браузер и данные, которые отправлят ваш код.
...
Рейтинг: 0 / 0
Помогите пожалуйста
    #37768395
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczВозьмите любой снифер и сравните данные, которые отправляет браузер и данные, которые отправлят ваш код.
да уже чуть ли не локально все это делаю, уже вот и так пробовала:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
  try {
            URL url = new URL ("http://files.mtu.gov.ua/private/test/");
            String authStr = "яяя" + ":" + "яяя";
            String authEncoded = Base64.encodeBytes(authStr.getBytes());

            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setDoOutput(true);
            connection.setRequestProperty  ("Authorization", "Basic " + authEncoded);
            InputStream content = (InputStream)connection.getInputStream();
            BufferedReader in   =
                new BufferedReader (new InputStreamReader (content));
            String line;
            while ((line = in.readLine()) != null) {
                System.out.println(line);
            }
        } catch(Exception e) {
            e.printStackTrace();
        }


и полезло:
Код: java
1.
2.
java.io.FileNotFoundException: http://files.mtu.gov.ua/private/test/
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1434)


фигня какая-то
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите пожалуйста
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]