Обычно надо прикинуться браузером, т.е. запомнить и выставлять в каждом последующем запросе верные куки (и не только). Поэтому вам надо сначала выяснить, что происходит при аутентификации и запомнить соответствующие параметры. Я бы посоветовал такие задачки решать интегрированными браузерами, на языках типа C# (WebForm или Chromium Embedded Framework) или писать плагин к конкретному браузеру (Chromium или FireFox), чтобы работать в нём, когда пользователь уже аутентифицирован, тогда в запросы автоматически будут подставлены верные параметры.
В общем, задача в общем виде в лоб не решается.
>> с помощью каки-то ухищрений, мне кажется не всегда корректных, но спросить совета не у кого
Я даже знаю, почему вы придумываете ухищрения - в задаче отсутствуют ключевые слова для стандартного подхода?
Философский ответ - когда не у кого спросить, то нужно вернуться на шаг назад и придумать ухищрение. Это вам кажется, что вы сделали ухищрение. Поищите его в интернете и, возможно, кто-то использует его как нормальное решение. В этом и состоит "путь джедая", чтобы незнание не становилось препятствием на пути. Кстати и работа программиста состоит в том же. Дофига времени тратится на поиск ухищрений (разумеется, это нужно делать после прочтения доков).
Корректными или некорректными являются ухищрения покажет время. Привыкайте к тому, что это будет основной работой. )
reus: А как в таком случае задавать тип такой виртуальной переменной? Или они все должны быть типа Object?
P.S. В Java переменные должны быть объявлены заранее, т.к. это свойство языка. Кроме академического применения, какую основную задачу вы или вам поставили, что вам нужен именно такой метод?
trevoga_su: Что значит "тормозит"? Для начала посмотрите в логах браузера, сколько у него вообще уходит на запрос и отсюда уже плясать. Может у вас с разрешением имени в DNS проблема, а со всем остальным всё ок.
RailsPack: Я тут ещё немного поразмыслил над вашим вопросом и пришёл вот к такому "умозаключению". В программировании есть ключевые слова, в задачах по программированию есть ключевые слова. Эти ключевые слова намекают на решение задачи. Но в задачах, которые встречаются в жизни нет ключевых слов. Вы не можете сказать заранее насколько удачным или неудачным может оказаться решение, если вас никто не ограничивает в формулировке. Поэтому переход от обучения программированию в реальную работу и сопровождается болезненным ощущением для самолюбия, что столько учил, а всё равно ощущение, что ничего не знаю.
Мне представляется главная цель - это сначала научиться программировать в принципе, пусть даже в сферическом вакууме, но потом необходимо совершить качественный скачок, чтобы не программирование управляло вами, а вы заставили программирование работать на себя.
Вот так как-то :)
Михаил Шпаков: Да, похоже, что я погорячился. Так давно не делал ajax синхронным, что забыл про это. Действительно, потому и виснет, что обработчик синхронный. Теперь мне понятен вопрос :). Затупил. Для таких случаев я просто вешаю интерфейс пользователя компонентом angular-block-ui.nullest.com/#!/examples/documentation и в фоне запускаю последовательно столько запросов, сколько нужно, но асинхронно. Я согласен Константин Китманов - я бы тоже не стал класть обработчик запроса в ту же функцию, которая его вызывает.
DimaSensation: Всё зависит от места в исходном документе куда надо его воткнуть. Если место одно, то всё можно в один файл, если места разные, то соответственно в два разных места. Есть вариант с bower, чтобы собрать всё вообще в один файл, но это уже на ваше усмотрение.
Рофал Лафор: Прокручивать надо до тех пор, пока результат вас устраивает. Если не устраивает, то выясняете, почему работа пошла неправильно, исправляете программу и возвращаетесь к п.1. В вашем случае лучше перезагрузить страницу или выдать исключение как я указал в п.4. Ваша программа не может остановиться сама, пока не будет исправлен алгоритм.
RailsPack: Ок, если про программирование в вакууме, то это просто перекладывание данных из одного участка памяти в другое с преобразованием. Ничего более. Всё остальное - ваша интерпретация. )))
Там много чего можно включить ещё, но просто нужна ясность цели. Она может быть вашей или чужой не важно. Но ясной. Нет такого понятия "научиться программированию (web/linux и т.д.)". По аналогии - если вы получили права, это не значит, что процесс обучения вождению у вас закончился. Я вот 12 лет вожу авто и всё равно нахожу что-то новое в интерпретации ПДД даже через такой промежуток времени. Так и в программировании надо быть готовым, что вы будете учиться всю жизнь, даже после того как поймёте один, второй, третий язык, протоколы, стандарты и пр. Это бесконечный процесс. В общем, будет трудно. Иногда чертовски трудно. )))
Рофал Лафор: Не, не правильно снимать с паузы!!! Для Хрома: F10-шаг с выполнением метода, F11-с заходом в метод. Ещё можно после первой паузы сразу выставить точки остановка в критических местах:
Рофал Лафор: Используйте хак:
1. Откройте страницу google.com (или любой другой сайт).
2. Откройте консоль отладчика (F12).
3. Скопируйте в консоль ваш код, но с одним дополнением. Перед последней строкой "qsort(myArray,0, myArray.length -1);" вставьте новую пустую строку и введите в неё команду "debugger;" и жмите Enter. Отладчик остановится на строке debugger.
4. Если код зацикливается при отладке (но вы в точке останова), то введите в консоль "arrayToSort=null" и запустите программу дальше. Она вылетит по исключению. Другого способа остановить зацикленный код JS в отладчике нет.
UniverseElement: могу посоветовать организовать цепочку из fiddler-ов. Ставите fiddler на комп, куда заголовки точно приходят. Потом настраиваете прокси на той машине, куда заголовки не приходят на тот fiddler и смотрите цепочку запросов.
В общем, задача в общем виде в лоб не решается.