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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> https login amazon.com, using jakarta httpclient 
V
    Опции темы
niasilil
Дата 25.4.2008, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Плохо понимаю как работает, если честно. Вот такой код, всегда возвращает login страницу. 
Надо залогиниться, емейл и пароль в коде написаны. Помогите, пожалуйста. Я что то делаю в корне не так как надо. 
Спасибо всем за то что просто посмотрели smile

Код

import org.apache.commons.httpclient.Cookie;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpState;
import org.apache.commons.httpclient.URI;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;


public class BasicAuthenticationExample {

    /**
     * Constructor for BasicAuthenticatonExample.
     */
    public BasicAuthenticationExample() {
        super();
    }

    public static void main(String[] args) throws Exception {
        HttpClient client = new HttpClient();

        HttpState state = client.getState();

        state.setCredentials(
            new AuthScope("www.amazon.com", 443, "realm"),
            new UsernamePasswordCredentials("[email protected]", "prostoj")
        );


        // create a GET method that reads a file over HTTPS, we're assuming
        // that this file requires basic authentication using the realm above.
        String url = "https://www.amazon.com/gp/sign-in.html?ie=UTF8&email=&disableCorpSignUp=&path=%2Fgp%2Fyourstore&redirectProtocol=&mode=&useRedirectOnSuccess=1&query=signIn%3D1%26action%3Dsign-out%26useRedirectOnSuccess%3D1%26ref%5F%3Dpd%5Firl%5Fgw%5Fr%26path%3D%2Fgp%2Fyourstore&pageAction=%2Fgp%2Fyourstore";
        GetMethod get = new GetMethod(url);

        PostMethod postMethod = new PostMethod();
        postMethod.setURI(new URI( url, true));


        // Tell the GET method to automatically handle authentication. The
        // method will use any appropriate credentials to handle basic
        // authentication requests.  Setting this value to false will cause
        // any request for authentication to return with a status of 401.
        // It will then be up to the client to handle the authentication.
        get.setDoAuthentication( false );

        try {
            // execute the GET
            int status = client.executeMethod(client.getHostConfiguration(), get, state);

//            // print the status and response
//            System.out.println(status + "\n" + get.getResponseBodyAsString());

            for (Cookie c : state.getCookies()) {
                // check if there are any
                System.out.println(c.toExternalForm());
            }

            // second time

            int responseCode = client.executeMethod(client.getHostConfiguration(), postMethod, state);

            // print the status and response
            System.out.println(status + "\n" + responseCode + "\n" + postMethod.getResponseBodyAsString());

        } finally {
            // release any connection resources used by the method
            get.releaseConnection();
        }
    }
}



--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Hidrag
Дата 25.4.2008, 22:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



niasilil
Моя схема написания автоматичекской сайтобродилки примерно такая:
Ставишь сниффер на браузер, заходишь на сайт и при этом внимательно смотришь какие данные отправляются на сервер и какие возвращаются из него, я имею ввиду куки и заголовки и параметры http запросов и ответов, ну а потом просто захардкодиваешь все это, поулчается примерно что то типа этого:
Код

    private boolean readyServer() {
        try {
            client = new HttpClient();
            logger.info("Подготовка сервера...");
            if (p.getProxyUse().equals("yes")) {
                client.getHostConfiguration().setProxy(p.getProxyHost(), Integer.parseInt(p.getProxyPort()));
            }
            client.getParams().setParameter("http.useragent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.1; MEGAUPLOAD 1.0)");

            GetMethod getMain = new GetMethod("https://uslugi.beeline.ru");
            client.executeMethod(getMain);
            Header h = getMain.getResponseHeader("Set-Cookie");
            getMain.releaseConnection();
            String s = h.getValue();
            Header ku = new Header("Cookie", s);

            plus = s.substring(s.indexOf("JSESSIONID") + 11, s.indexOf("JSESSIONID") + 74);
            plus = ";jsessionid=" + plus;

            logger.info("Авторизация на сервере: " + p.getBeeLogin());
            PostMethod postAuth = new PostMethod("https://uslugi.beeline.ru/loginPage.do" + plus);
            NameValuePair[] data = {
                new NameValuePair("userName", p.getBeeLogin()),
                new NameValuePair("password", p.getBeePass()),
                new NameValuePair("_stateParam", "eCareLocale.currentLocale=ru_RU__Russian"),
                new NameValuePair("_forwardName", "null"),
                new NameValuePair("_resetBreadCrumbs", "false"),
                new NameValuePair("_expandStatus", ""),
                new NameValuePair("ecareAction", "login")
            };
            postAuth.setRequestBody(data);
            postAuth.setRequestHeader(ku);
            postAuth.setFollowRedirects(false);
            client.executeMethod(postAuth);
            String body = postAuth.getResponseBodyAsString();
            if (body.contains("Неправильный логин или пароль")) {
                logger.error("Ошибка авторизации! ");
                return false;
            }
            postAuth.releaseConnection();
            logger.info("Авторизация прошла успешно! " + p.getBeeLogin());

            logger.info("Запрос 1 ...");
            cookie = new Header("Cookie", s + "; eCareCookie=");
            PostMethod postFin = new PostMethod("https://uslugi.beeline.ru/navigateMenu.do" + plus);
            NameValuePair[] data2 = {
                new NameValuePair("_expandStatus", ""),
                new NameValuePair("_navigation_primaryMenu", "billing"),
                new NameValuePair("_resetBreadCrumbs", "true")
            };
            postFin.setRequestBody(data2);
            postFin.setRequestHeader(cookie);
            client.executeMethod(postFin);
            postFin.releaseConnection();

            logger.info("Запрос 2 ...");
            PostMethod postCal = new PostMethod("https://uslugi.beeline.ru/loadUnbilledAction.do" + plus);
            NameValuePair[] data3 = {
                new NameValuePair("_expandStatus", ""),
                new NameValuePair("_navigation_secondaryMenu", "billing.unbilledCalls"),
                new NameValuePair("_resetBreadCrumbs", "true")
            };
            postCal.setRequestBody(data3);
            postCal.setRequestHeader(cookie);
            client.executeMethod(postCal);
            postCal.releaseConnection();
            logger.info("Подготовка сервера завершена!");
            return true;
        } catch (Exception e) {
            logger.error("Ошибка в подготовке сервера! ", e);
            return false;
        }
    }


Вот пример кода который у меня заходил на сайт билайна и вводил там логин и пас, в твоем случае код будет отличаться но общий принцип думаю стал понятен.
там p - это мой класс с настройками...


--------------------
user posted image
PM WWW ICQ   Вверх
niasilil
Дата 26.4.2008, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



сниффер на браузер - в данном случае просто посмотреть source code и ручками вбить все input tags как new NameValuePair() ? 
Пытаюсь разобраться в пакетах которые wireshark захватил, но похоже это неправильный путь. 

Hidrag, а почему ты не пользовался HttpState классом? там вроде теоретически должно сохранять все куки, может где поводные камни есть? 

ЗЫ спасибо за ответ, кстати. Думаю. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Hidrag
Дата 26.4.2008, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



niasilil, Не знаю почему тогда им не пользовался, наверное не дочитал про него в доках smile Да и получаемый код работал хорошо, сниффер это программка или нашлепка на браузер которая покажет ВСЕ параметры передаваемые и получаемые а не только те что в формах, а также куки, какие куки отправляет браузер и какие получает, например:
Код

          NameValuePair[] data = {
                new NameValuePair("userName", p.getBeeLogin()),
                new NameValuePair("password", p.getBeePass()),
                new NameValuePair("_stateParam", "eCareLocale.currentLocale=ru_RU__Russian"),
                new NameValuePair("_forwardName", "null"),
                new NameValuePair("_resetBreadCrumbs", "false"),
                new NameValuePair("_expandStatus", ""),
                new NameValuePair("ecareAction", "login")
            };

Эти параметры я не мог узнать изучая исходный код они перехватились только браузером, по исходному коду я мог бы увидеть только два парметра: это юзерНэйм и пассворд, они в форме были, другие я не знаю откуда взялись, но браузер их отсылал, и без них сервер не отдавал нужную страницу... Больше времени ушло на анализ запросов/ответов чем на написание кода, но это частный случай, там так все было есть сайты по проще, например я легко логинился на mail.ru кода там было намного меньше....


--------------------
user posted image
PM WWW ICQ   Вверх
niasilil
Дата 26.4.2008, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Hidrag @ 26.4.2008,  18:13)
Эти параметры я не мог узнать изучая исходный код они перехватились только браузером

так вот и я тоже легко могу залогиниться на какой нибудь гугл, а здесь... 

вобщем то все эти параметры есть на html странице, достаточно сделать поиск по слову input smile


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Vasay
Дата 26.4.2008, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

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



Снифер необходим - писал как-то логин на один из сервисов google - так там столько редиректов было...

П.с. Насколько я знаю у амазона есть API, может использовать его будет проще?

Добавлено через 2 минуты и 7 секунд
niasilil

Цитата

вобщем то все эти параметры есть на html странице, достаточно сделать поиск по слову input smile 


Не забываем про куки, реферер и яваскрипт, который может что-то дописывать в куки, или менять значения импутов...


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
niasilil
Дата 26.4.2008, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



а какой сниффер посоветуете? 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Hidrag
Дата 26.4.2008, 19:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если мне не изменяет память, я юзал вот этот
http://nitki.nnm.ru/http_analyzer_ie_addon_edition_v30155
он платный, но первые 30 дней работает, мне их тогда хватило для выполнения задачи


--------------------
user posted image
PM WWW ICQ   Вверх
Vasay
Дата 26.4.2008, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

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



Я юзал плагин к фаерфоксу. Вроде этот: https://addons.mozilla.org/ru/firefox/addon/60


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
niasilil
Дата 27.4.2008, 05:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



это какой то кошмар, блин. Проходит первый GET, происходит редирект, на второй GET получается login page.
Далее посылается POST, вроде что то шевелится и в ответ приходит ошибка.

Куда копать? Что ковырять? 
Очень нужен совет!



YES YES YES 
Всем огромнейшее спасибо. 
Такой муторной работы я давно не делал. Главное что ведь сломается же все через месяц два когда они изменят свой код. Ну да ладно, надо здесь и сейчас. 

Здесь код, может кому пригодится. В комментариях headers из браузера - типа что должно быть:
Код

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.*;

// requires three jar files
// commons-httpclient-3.0.1.jar commons-logging-1.1.jar commons-codec-1.3.jar
public class Hidrag {

    static HttpClient client = new HttpClient();
    static MultiThreadedHttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager();

    public static void main(String[] args) {
        readyServer();
    }

    private static boolean readyServer() {
        GetMethod getMain = null;
        HttpState state= new HttpState();
        try {
            client = new HttpClient();

            System.out.println("Podgotovka...");

            // initial GET
            /*
                (Request-Line):GET /gp/seller-account/inventory/list-inventory.html HTTP/1.1
                Accept:[deleted niasilil]
                Accept-Language:en-us
                UA-CPU:x86
                Accept-Encoding:gzip, deflate
                User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
                Host:www.amazon.com
                Connection:Keep-Alive
             */
            /* response
             *
                (Status-Line):HTTP/1.1 302 MovedTemporarily
                Date:Sun, 27 Apr 2008 02:07:53 GMT
                Server:Server
                x-amz-id-1:03C703A1PNXG2FYA3CT0
                x-amz-id-2:Mg2jOH3E/H+FfOL22E9n1+4v672HdqHQ
                Set-cookie:session-id-time=1209798000l; path=/; domain=.amazon.com; expires=Sat May 03 07:00:00 2008 GMT
                Set-cookie:session-id=104-0559236-2455961; path=/; domain=.amazon.com; expires=Sat May 03 07:00:00 2008 GMT
                Location:https://www.amazon.com/gp/sign-in.html/104-0559236-2455961?ie=UTF8&email=&disableCorpSignUp=&path=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html&redirectProtocol=&mode=&useRedirectOnSuccess=1&query=%2Aentries%2A%3D0%26%2AVersion%2A%3D1&pageAction=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html
                Vary:Accept-Encoding,User-Agent
                Content-Encoding:gzip
                Content-Type:text/html; charset=ISO-8859-1
                Transfer-Encoding:chunked
             */
            /* another request
             *
                (Request-Line):GET /gp/sign-in.html/104-0559236-2455961?ie=UTF8&email=&disableCorpSignUp=&path=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html&redirectProtocol=&mode=&useRedirectOnSuccess=1&query=%2Aentries%2A%3D0%26%2AVersion%2A%3D1&pageAction=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html HTTP/1.1
                Accept-Language:en-us
                UA-CPU:x86
                Accept-Encoding:gzip, deflate
                User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
                Cookie:session-id-time=1209798000l; session-id=104-0559236-2455961
                Connection:Keep-Alive
                Host:www.amazon.com
             */
            /* response
             *
                (Status-Line):HTTP/1.0 200 OK
                Date:Sun, 27 Apr 2008 02:07:53 GMT
                Server:Server
                x-amz-id-1:0M28SZA1ZFQ0YEHKHJ68
                x-amz-id-2:IGZioiy3iTTr+CdyCqnZ5b7SMOJx1MoW
                Set-cookie:ubid-main=002-2169711-2167314; path=/; domain=.amazon.com; expires=Tue Jan 01 08:00:01 2036 GMT
                Vary:Accept-Encoding,User-Agent
                Content-Encoding:gzip
                Content-Type:text/html; charset=ISO-8859-1
                Connection:close

             */
            client
                    .getParams()
                    .setParameter(
                            "http.useragent",
                            "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)");
            client.getParams().setParameter("Accept-Language","en-us");
            client.getParams().setParameter("UA-CPU","x86");
            client.getParams().setParameter("Accept-Encoding", "gzip, deflate");
            client.getParams().setParameter("Host","www.amazon.com");
            client.getParams().setParameter("Connection","Keep-Alive");

            String url = "http://www.amazon.com/gp/seller-account/inventory/list-inventory.html";
            getMain = new GetMethod(url);
            client.executeMethod(client.getHostConfiguration(), getMain, state);

            Header h = getMain.getResponseHeader("Set-Cookie");

            getMain.releaseConnection();

            String s = h.getValue();
            System.out.println(s);

            client.getParams().setParameter("Content-Type","application/x-www-form-urlencoded");

            /*
                (Request-Line):POST /gp/flex/sign-in/select.html?ie=UTF8&protocol=https HTTP/1.1
                Referer:https://www.amazon.com/gp/sign-in.html/104-0559236-2455961?ie=UTF8&email=&disableCorpSignUp=&path=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html&redirectProtocol=&mode=&useRedirectOnSuccess=1&query=%2Aentries%2A%3D0%26%2AVersion%2A%3D1&pageAction=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html
                Accept-Language:en-us
                Content-Type:application/x-www-form-urlencoded
                UA-CPU:x86
                Accept-Encoding:gzip, deflate
                User-Agent:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
                Host:www.amazon.com
                Content-Length:834
                Connection:Keep-Alive
                Cache-Control:no-cache
                Cookie:session-id-time=1209798000l; session-id=104-0559236-2455961; ubid-main=002-2169711-2167314
             */
            /*
                (Status-Line):HTTP/1.0 302 MovedTemporarily
                Date:Sun, 27 Apr 2008 02:08:27 GMT
                Server:Server
                x-amz-id-1:05KMAXN74D1Q9TZH71ND
                x-amz-id-2:IGZioiy3iTTr+CdyCqnZ5b7SMOJx1MoW
                Set-cookie:x-main=e4HnfmLQDCXbm2zHPecgsdKRFi4dZITu; path=/; domain=.amazon.com; expires=Tue Jan 01 08:00:01 2036 GMT
                Set-cookie:at-main=2|Xm8cSXc0spffi2r5x9eBpTMEjqM5vbkEqZCNvc1c7tMC2pOA7eCAOz9xKgI0OfDf4KKyNoS+CMsd/xzFb/VjE1/Y4RJAG4b9Rf0w+ItDuZJD07tptR/WI1eS/TyvP28qnOyP0NOcXYeURGp+dnYc5OUgvw7gpKAo2uUW1UMdYLnmu9gw6nn91A==; path=/; domain=.amazon.com; expires=Tue Jan 01 08:00:01 2036 GMT
                Set-cookie:session-token=9qfS/U5+9zTKa2ztNFSgAjEVxe/KqRWa3TBXsOCSqRJgeryJnGy10CBRgKcKf/gSkjr5th6GB+WQrFcgz84FauV2igFuTsyq3OiUWO1GUsKKDyXRiClYP3DyBHuG86pK1I0/FwGfAIwCxTxn6V5RjD8MEydmtVeGtruUrKJWD0/5milAbL61SRq4qiM+s9HyMQWDFs3o46hE7pDJKURI/kj/wVSQN+BYSCvNOrGP8OeyPWFC9d1A8Fp5XSVvmM2p; path=/; domain=.amazon.com; expires=Sun Apr 27 02:18:27 2008 GMT
                Location:https://www.amazon.com/gp/seller-account/inventory/list-inventory.html?ie=UTF8&%2AVersion%2A=1&%2Aentries%2A=0
                Vary:Accept-Encoding,User-Agent
                Content-Encoding:gzip
                Content-Type:text/html; charset=ISO-8859-1
                Connection:close
             */
            /*
                (Request-Line)  GET /gp/seller-account/inventory/list-inventory.html?ie=UTF8&%2AVersion%2A=1&%2Aentries%2A=0 HTTP/1.1
                Referer https://www.amazon.com/gp/sign-in.html/104-0559236-2455961?ie=UTF8&email=&disableCorpSignUp=&path=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html&redirectProtocol=&mode=&useRedirectOnSuccess=1&query=%2Aentries%2A%3D0%26%2AVersion%2A%3D1&pageAction=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html
                Accept-Language en-us
                UA-CPU  x86
                Accept-Encoding gzip, deflate
                User-Agent      Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; EmbeddedWB 14.52 from: http://www.bsalsa.com/ EmbeddedWB 14.52; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
                Host    www.amazon.com
                Connection      Keep-Alive
                Cache-Control   no-cache
                Cookie  session-id-time=1209798000l; session-id=104-0559236-2455961; ubid-main=002-2169711-2167314; x-main=e4HnfmLQDCXbm2zHPecgsdKRFi4dZITu; at-main=2|Xm8cSXc0spffi2r5x9eBpTMEjqM5vbkEqZCNvc1c7tMC2pOA7eCAOz9xKgI0OfDf4KKyNoS+CMsd/xzFb/VjE1/Y4RJAG4b9Rf0w+ItDuZJD07tptR/WI1eS/TyvP28qnOyP0NOcXYeURGp+dnYc5OUgvw7gpKAo2uUW1UMdYLnmu9gw6nn91A==; session-token=9qfS/U5+9zTKa2ztNFSgAjEVxe/KqRWa3TBXsOCSqRJgeryJnGy10CBRgKcKf/gSkjr5th6GB+WQrFcgz84FauV2igFuTsyq3OiUWO1GUsKKDyXRiClYP3DyBHuG86pK1I0/FwGfAIwCxTxn6V5RjD8MEydmtVeGtruUrKJWD0/5milAbL61SRq4qiM+s9HyMQWDFs3o46hE7pDJKURI/kj/wVSQN+BYSCvNOrGP8OeyPWFC9d1A8Fp5XSVvmM2p
             */
            System.out.println("Avtorizatsiya...");
            PostMethod postAuth = new PostMethod("https://www.amazon.com/gp/flex/sign-in/select.html?ie=UTF8&protocol=https");

            NameValuePair[] data = {
                    new NameValuePair("path", "/gp/seller-account/inventory/list-inventory.html"),
                    new NameValuePair("useRedirectOnSuccess", "1"),
                    new NameValuePair("query", "*entries*=0&*Version*=1"),
                    new NameValuePair("mode", ""),
                    new NameValuePair("redirectProtocol", ""),
                    new NameValuePair("pageAction", "/gp/seller-account/inventory/list-inventory.html"),
                    new NameValuePair("disableCorpSignUp", ""),
                    new NameValuePair("email", "[email protected]"),
                    new NameValuePair("action", "sign-in"),
                    new NameValuePair("password", "prostoj"),
                    new NameValuePair("metadata1", "IE 7.0-7,0,5730,13 Windows"),
                    new NameValuePair("metadataf1", ""),
                    new NameValuePair("metadata2", "ShockwaveFlash : 393216|AB 6,0,2600,0|WDUN 6,0,2900,2180|DA 6,0,3,531|DAJC 6,0,1,223|DS 11,0,5721,5145|DHDB 7,0,5730,13|DHDBFJ 6,0,1,223|ICW 5,0,2918,1900|IE 7,0,5730,13|WMP 11,0,5721,5145|NN 4,4,0,3400|OBP 7,0,5730,13|OE 6,0,2900,2180|TS 4,71,1968,1|MVM 5,0,5000,0||1680-1050-1020-32-96-96-0"),
                    new NameValuePair("metadata3", "timezone: 5 execution time: 172"),
//                    new NameValuePair("x", "170"),
//                    new NameValuePair("y", "8")
            };
            postAuth.setRequestBody(data);

            String cookieId = "";
            for(Cookie c: state.getCookies()){
                System.out.println(c.toString());
                if(c.toString().startsWith("session-id=")){
                    cookieId = c.toString().substring(11);
                    System.out.println(cookieId);
                }
            }
            client.getParams().setParameter("Referer","https://www.amazon.com/gp/sign-in.html/" + cookieId +"?ie=UTF8&email=&disableCorpSignUp=&path=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html&redirectProtocol=&mode=&useRedirectOnSuccess=1&query=%2Aentries%2A%3D0%26%2AVersion%2A%3D1&pageAction=%2Fgp%2Fseller-account%2Finventory%2Flist-inventory.html");
            client.getParams().setParameter("Content-Type","application/x-www-form-urlencoded");

            client.executeMethod(client.getHostConfiguration(), postAuth, state);

            String redirectLocation;
            Header locationHeader = postAuth.getResponseHeader("location");
            if (locationHeader != null) {
                redirectLocation = locationHeader.getValue();
                System.out.println(redirectLocation);
                getMain = new GetMethod(redirectLocation);
                client.executeMethod(client.getHostConfiguration(), getMain, state);
            } else {
                // The response is invalid and did not provide the new location for
                // the resource.  Report an error or possibly handle the response
                // like a 404 Not Found error.
            }

            String body = getMain.getResponseBodyAsString();
            System.out.println(body);

            getMain.releaseConnection();
            postAuth.releaseConnection();

            return true;

        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }
}




Это сообщение отредактировал(а) niasilil - 27.4.2008, 05:56


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
niasilil
Дата 27.4.2008, 06:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Vasay @ 26.4.2008,  18:50)
П.с. Насколько я знаю у амазона есть API, может использовать его будет проще?

Это первым делом, понятно. А уж чего не предоставляют как webservice, то ручками через браузер. :( 
Почти все у них можно красиво и быстро можно через wsdl, нашлепать объектов и сделать что хочешь. Но к сожалению только "почти". 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
Saboteur
Дата 7.7.2008, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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