Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Не могу залогиниться на сайт 
:(
    Опции темы
junkjunk
Дата 2.2.2015, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 2.2.2015

Репутация: нет
Всего: нет



Всем здравствуйте.

Пытаюсь залогиниться на joyreactor.cc

Опыта в таких вещах нет, поэтому как делать не знаю. После некоторого гугления родилось что-то такое (решено было использовать Apache HttpClient 4.3.6 и JerichoParser):

Код

private static CloseableHttpClient httpclient;

    private static void printCookies(BasicCookieStore cookieStore) {
        List<Cookie> cookies = cookieStore.getCookies();
        if (cookies.isEmpty()) {
            System.out.println("None");
        } else {
            for (int i = 0; i < cookies.size(); i++) {
                System.out.println("- " + cookies.get(i).toString());
            }
        }
    }

    private static CloseableHttpResponse executeRequest(HttpUriRequest request,
            String origin, String referer) throws IOException,
            ClientProtocolException {
        request.setHeader(
                "User-Agent",
                "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36");
        request.setHeader("Accept",
                "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
        request.setHeader("Accept-Language", "en-US,en;q=0.8,ru;q=0.6");
        if (origin != null) {
            request.setHeader("Origin", origin);
        }
        if (referer != null) {
            request.setHeader("Referer", referer);
        }
        CloseableHttpResponse response = httpclient.execute(request);
        System.out.println(response.getStatusLine());
        return response;
    }

    public static void main(String[] args) throws Exception {

        PropertyConfigurator.configure("log4j.properties");
        BasicCookieStore cookieStore = new BasicCookieStore();
        httpclient = HttpClients.custom()
                .setConnectionManager(new BasicHttpClientConnectionManager())
                .setDefaultCookieStore(cookieStore).build();

        String token = null;
        {
            HttpGet httpget = new HttpGet("http://joyreactor.cc/login");
            CloseableHttpResponse response = executeRequest(httpget, null, null);
            try {
                InputStream in = response.getEntity().getContent();
                Source source = new Source(in);
                List<Element> inputs = source.getAllElements("input");
                for (Element input : inputs) {
                    String name = input.getAttributeValue("name");
                    if (name != null && name.equals("signin[_csrf_token]")) {
                        token = input.getAttributeValue("value");
                        break;
                    }
                }

                System.out.println("Initial cookies:");
                printCookies(cookieStore);
            } finally {
                response.close();
            }
            System.out.println("Token: " + token);
        }

        {
            List<NameValuePair> formparams = new ArrayList<NameValuePair>();
            formparams.add(new BasicNameValuePair("signin[username]",
                    "someuser"));
            formparams.add(new BasicNameValuePair("signin[password]",
                    "somepass"));
            formparams
                    .add(new BasicNameValuePair("signin[_csrf_token]", token));
            UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams,
                    Consts.UTF_8);
            HttpPost httppost = new HttpPost("http://joyreactor.cc/login");
            httppost.setEntity(entity);
            CloseableHttpResponse response = executeRequest(httppost,
                    "http://joyreactor.cc", "http://joyreactor.cc/login");

            try {
                InputStream in = response.getEntity().getContent();
                Source source = new Source(in);

                System.out.println("Post logon cookies:");
                printCookies(cookieStore);

            } finally {
                response.close();
            }
        }

        httpclient.close();
    }


Второй запрос вместо HTTP 302 отдает 200 и в контенте страница для логина. Initial cookies и Post logon cookies одинаковые.

Вот то, что в логах:
Код

DEBUG [org.apache.http.client.protocol.RequestAddCookies] CookieSpec selected: best-match
DEBUG [org.apache.http.client.protocol.RequestAuthCache] Auth cache not set in the 
context
DEBUG [org.apache.http.impl.conn.BasicHttpClientConnectionManager] Get connection for 
route {}->http://joyreactor.cc:80
DEBUG [org.apache.http.impl.execchain.MainClientExec] Opening connection {}->
http://joyreactor.cc:80
DEBUG [org.apache.http.impl.conn.HttpClientConnectionOperator] Connecting to 
joyreactor.cc/50.7.136.178:80
DEBUG [org.apache.http.impl.conn.HttpClientConnectionOperator] Connection established 
192.168.0.10:4744<->50.7.136.178:80
DEBUG [org.apache.http.impl.execchain.MainClientExec] Executing request GET /login 
HTTP/1.1
DEBUG [org.apache.http.impl.execchain.MainClientExec] Target auth state: UNCHALLENGED
DEBUG [org.apache.http.impl.execchain.MainClientExec] Proxy auth state: UNCHALLENGED
DEBUG [org.apache.http.headers] http-outgoing-0 >> GET /login HTTP/1.1
DEBUG [org.apache.http.headers] http-outgoing-0 >> User-Agent: Mozilla/5.0 (Windows NT 
5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36
DEBUG [org.apache.http.headers] http-outgoing-0 >> Accept: 
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
DEBUG [org.apache.http.headers] http-outgoing-0 >> Accept-Language: 
en-US,en;q=0.8,ru;q=0.6
DEBUG [org.apache.http.headers] http-outgoing-0 >> Host: joyreactor.cc
DEBUG [org.apache.http.headers] http-outgoing-0 >> Connection: Keep-Alive
DEBUG [org.apache.http.headers] http-outgoing-0 >> Accept-Encoding: gzip,deflate
DEBUG [org.apache.http.headers] http-outgoing-0 << HTTP/1.1 401 Unauthorized
DEBUG [org.apache.http.headers] http-outgoing-0 << Server: nginx/1.6.2
DEBUG [org.apache.http.headers] http-outgoing-0 << Date: Mon, 02 Feb 2015 16:32:43 GMT
DEBUG [org.apache.http.headers] http-outgoing-0 << Content-Type: text/html; charset=utf-8
DEBUG [org.apache.http.headers] http-outgoing-0 << Transfer-Encoding: chunked
DEBUG [org.apache.http.headers] http-outgoing-0 << Connection: keep-alive
DEBUG [org.apache.http.headers] http-outgoing-0 << X-Powered-By: PHP/5.4.37
DEBUG [org.apache.http.headers] http-outgoing-0 << Cache-Control: private
DEBUG [org.apache.http.headers] http-outgoing-0 << Set-Cookie: 
joyreactor=ver3fe15a757690ddab4ef41baffb8916e77:2cc2d86401ae1c54f559991f87beefd3bc32bd76;
 expires=Thu, 05-Feb-2015 16:32:43 GMT; path=/; domain=.joyreactor.cc; httponly
DEBUG [org.apache.http.headers] http-outgoing-0 << Content-Encoding: gzip
DEBUG [org.apache.http.headers] http-outgoing-0 << Vary: Accept-Encoding
DEBUG [org.apache.http.impl.execchain.MainClientExec] Connection can be kept alive 
indefinitely
DEBUG [org.apache.http.impl.auth.HttpAuthenticator] Authentication required
DEBUG [org.apache.http.impl.auth.HttpAuthenticator] joyreactor.cc:80 requested 
authentication
DEBUG [org.apache.http.impl.auth.HttpAuthenticator] Response contains no authentication 
challenges
DEBUG [org.apache.http.client.protocol.ResponseProcessCookies] Cookie accepted 
[joyreactor="ver3fe15a757690ddab4ef41baffb8916e77:2cc2d86401ae1c54f559991f87beefd3bc32bd7
6", version:0, domain:.joyreactor.cc, path:/, expiry:Fri Feb 06 00:32:43 CST 2015]
HTTP/1.1 401 Unauthorized
DEBUG [org.apache.http.impl.conn.BasicHttpClientConnectionManager] Releasing connection 
192.168.0.10:4744<->50.7.136.178:80
DEBUG [org.apache.http.impl.conn.BasicHttpClientConnectionManager] Connection can be 
kept alive indefinitely
Initial cookies:
- [version: 0][name: joyreactor][value: 
ver3fe15a757690ddab4ef41baffb8916e77:2cc2d86401ae1c54f559991f87beefd3bc32bd76][domain: 
.joyreactor.cc][path: /][expiry: Fri Feb 06 00:32:43 CST 2015]
Token: 1e2cc498f94bcef46655cee4bc451053
DEBUG [org.apache.http.client.protocol.RequestAddCookies] CookieSpec selected: best-match
DEBUG [org.apache.http.client.protocol.RequestAddCookies] Cookie [version: 0][name: 
joyreactor][value: 
ver3fe15a757690ddab4ef41baffb8916e77:2cc2d86401ae1c54f559991f87beefd3bc32bd76][domain: 
.joyreactor.cc][path: /][expiry: Fri Feb 06 00:32:43 CST 2015] match 
[joyreactor.cc:80/login]
DEBUG [org.apache.http.client.protocol.RequestAuthCache] Auth cache not set in the 
context
DEBUG [org.apache.http.impl.conn.BasicHttpClientConnectionManager] Get connection for 
route {}->http://joyreactor.cc:80
DEBUG [org.apache.http.impl.execchain.MainClientExec] Stale connection check
DEBUG [org.apache.http.impl.execchain.MainClientExec] Executing request POST /login 
HTTP/1.1
DEBUG [org.apache.http.impl.execchain.MainClientExec] Target auth state: UNCHALLENGED
DEBUG [org.apache.http.impl.execchain.MainClientExec] Proxy auth state: UNCHALLENGED
DEBUG [org.apache.http.headers] http-outgoing-0 >> POST /login HTTP/1.1
DEBUG [org.apache.http.headers] http-outgoing-0 >> User-Agent: Mozilla/5.0 (Windows NT 
5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.94 Safari/537.36
DEBUG [org.apache.http.headers] http-outgoing-0 >> Accept: 
text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
DEBUG [org.apache.http.headers] http-outgoing-0 >> Accept-Language: 
en-US,en;q=0.8,ru;q=0.6
DEBUG [org.apache.http.headers] http-outgoing-0 >> Origin: http://joyreactor.cc
DEBUG [org.apache.http.headers] http-outgoing-0 >> Referer: http://joyreactor.cc/login
DEBUG [org.apache.http.headers] http-outgoing-0 >> Content-Length: 117
DEBUG [org.apache.http.headers] http-outgoing-0 >> Content-Type: 
application/x-www-form-urlencoded; charset=UTF-8
DEBUG [org.apache.http.headers] http-outgoing-0 >> Host: joyreactor.cc
DEBUG [org.apache.http.headers] http-outgoing-0 >> Connection: Keep-Alive
DEBUG [org.apache.http.headers] http-outgoing-0 >> Cookie: 
joyreactor=ver3fe15a757690ddab4ef41baffb8916e77:2cc2d86401ae1c54f559991f87beefd3bc32bd76
DEBUG [org.apache.http.headers] http-outgoing-0 >> Cookie2: $Version=1
DEBUG [org.apache.http.headers] http-outgoing-0 >> Accept-Encoding: gzip,deflate
DEBUG [org.apache.http.headers] http-outgoing-0 << HTTP/1.1 200 OK
DEBUG [org.apache.http.headers] http-outgoing-0 << Server: nginx/1.6.2
DEBUG [org.apache.http.headers] http-outgoing-0 << Date: Mon, 02 Feb 2015 16:32:45 GMT
DEBUG [org.apache.http.headers] http-outgoing-0 << Content-Type: text/html; charset=utf-8
DEBUG [org.apache.http.headers] http-outgoing-0 << Transfer-Encoding: chunked
DEBUG [org.apache.http.headers] http-outgoing-0 << Connection: keep-alive
DEBUG [org.apache.http.headers] http-outgoing-0 << X-Powered-By: PHP/5.4.37
DEBUG [org.apache.http.headers] http-outgoing-0 << Cache-Control: private
DEBUG [org.apache.http.headers] http-outgoing-0 << Content-Encoding: gzip
DEBUG [org.apache.http.headers] http-outgoing-0 << Vary: Accept-Encoding
DEBUG [org.apache.http.impl.execchain.MainClientExec] Connection can be kept alive 
indefinitely
HTTP/1.1 200 OK
DEBUG [org.apache.http.impl.conn.BasicHttpClientConnectionManager] Releasing connection 
192.168.0.10:4744<->50.7.136.178:80
DEBUG [org.apache.http.impl.conn.BasicHttpClientConnectionManager] Connection can be 
kept alive indefinitely
Post logon cookies:
- [version: 0][name: joyreactor][value: 
ver3fe15a757690ddab4ef41baffb8916e77:2cc2d86401ae1c54f559991f87beefd3bc32bd76][domain: 
.joyreactor.cc][path: /][expiry: Fri Feb 06 00:32:43 CST 2015]
DEBUG [org.apache.http.impl.conn.BasicHttpClientConnectionManager] Shutting down 
connection
DEBUG [org.apache.http.impl.conn.DefaultManagedHttpClientConnection] http-outgoing-0: 
Shutdown connection



Для сравнения то, что видно в дебаггере chrom'а, когда логинюсь через браузер:

Первый запрос:
Код

Remote Address:50.7.136.178:80
Request URL:http://joyreactor.cc/login
Request Method:GET
Status Code:401 Unauthorized

Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,ru;q=0.6
Connection:keep-alive
Host:joyreactor.cc
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/40.0.2214.94 Safari/537.36

Response Headers
Cache-Control:private
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Mon, 02 Feb 2015 16:30:39 GMT
Server:nginx/1.6.2
Set-Cookie:joyreactor=ver31d60931282ac395f75ed2d67188f3b2d:55e29a350eac674c18d32849dd1b07
c842bd31df; expires=Thu, 05-Feb-2015 16:30:39 GMT; path=/; domain=.joyreactor.cc; 
httponly
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP/5.4.37


Второй запрос:
Код

Remote Address:50.7.136.178:80
Request URL:http://joyreactor.cc/login
Request Method:POST
Status Code:302 Found

Request Headers
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip, deflate
Accept-Language:en-US,en;q=0.8,ru;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:117
Content-Type:application/x-www-form-urlencoded
Cookie:joyreactor=ver31d60931282ac395f75ed2d67188f3b2d:55e29a350eac674c18d32849dd1b07c842
bd31df; __utmt=1; __utma=181923772.218050553.1422894703.1422894703.1422894703.1; 
__utmb=181923772.1.10.1422894703; __utmc=181923772; 
__utmz=181923772.1422894703.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); 
__lx181488_load_cnt=1; __lx181488_load_tmr=0; __lx181488_load_tmr_pre=1422894703364; 
___ws_ses=742A97B0F7AFD4EB.1; ___ws_vis=742A97B0F7AFD4EB.1422894644619; 
___ws_ses_sec=unknown:1422894644619; ___ws_vis_sec=unknown:1422894644619; 
__qca=P0-428451837-1422894705122; ws-refr=http://joyreactor.cc/login; 
ortcsession-R60tcQ-s=5a9a44799aebe5d0; ortcsession-R60tcQ=5a9a44799aebe5d0
Host:joyreactor.cc
Origin:http://joyreactor.cc
Referer:http://joyreactor.cc/login
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/40.0.2214.94 Safari/537.36

Form Data
signin[username]:someuser
signin[password]:somepass
signin[_csrf_token]:b484e9f918d191d5d050ff99ea517f51

Response Headers
Connection:keep-alive
Content-Encoding:gzip
Content-Type:text/html; charset=utf-8
Date:Mon, 02 Feb 2015 16:31:23 GMT
Location:http://joyreactor.cc/
Server:nginx/1.6.2
Set-Cookie:joyreactor=ver3e7ff5754f9ec6ef6411ac66daecf38c3:cf1dbe90d67cebc82284fe39de554b
7ae8f45828; expires=Thu, 05-Feb-2015 16:31:23 GMT; path=/; domain=.joyreactor.cc; 
httponly
Transfer-Encoding:chunked
Vary:Accept-Encoding
X-Powered-By:PHP/5.4.37


Вроде бы все совпадает, но во втором запросе в Cookies похоже передается что-то еще, помимо того, что получается в первом запросе:
Код

 __utmt=1; __utma=181923772.218050553.1422894703.1422894703.1422894703.1; 
__utmb=181923772.1.10.1422894703; __utmc=181923772; 
__utmz=181923772.1422894703.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); 
__lx181488_load_cnt=1; __lx181488_load_tmr=0; __lx181488_load_tmr_pre=1422894703364; 
___ws_ses=742A97B0F7AFD4EB.1; ___ws_vis=742A97B0F7AFD4EB.1422894644619; 
___ws_ses_sec=unknown:1422894644619; ___ws_vis_sec=unknown:1422894644619; 
__qca=P0-428451837-1422894705122; ws-refr=http://joyreactor.cc/login; 
ortcsession-R60tcQ-s=5a9a44799aebe5d0; ortcsession-R60tcQ=5a9a44799aebe5d0


Не знаю что это такое и откуда берется. Может из-за этого не работать?

Или причина в чем-то вообще другом? Может как-то совсем по другому надо делать?

Это сообщение отредактировал(а) junkjunk - 2.2.2015, 20:04
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Работа с сетью | Следующая тема »


 




[ Время генерации скрипта: 0.1282 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.