HttpURLConnection - не читает заголовки и контент

Ответить
nobody
Сообщения: 11
Зарегистрирован: 02 янв 2014, 06:43

HttpURLConnection - не читает заголовки и контент

Сообщение nobody » 13 янв 2014, 03:38

Делаю прямую авторизацию Вконтакте (отбитая тема, как я понял).
Запросы на авторизацию провожу в AsyncTask и таких запроса три, но один я отброшу в скором времени. Первый запрос проходит отлично: ловим заголовки, читаем куки, правда берутся значения с определенным заголовком
[syntax=java5]List<String> cookies = connection.getHeaderFields().get("Set-Cookie");[/syntax]
Обратным макаром через цикл, записываем заголовки с полученными значениями и посылаем второй запрос для получения редиректа на http://vk.com/login.php. И снова все проходит как требуется: ловим нужные заголовки, читаем значения заголовков с респонса по имени "Set-Cookie" и делаем ТРЕТИЙ запрос уже на конечную авторизацию и получения конечных кук.

Вот здесь происходят чудеса (дня три уже наблюдаю и не могу решить самостоятельно) — сниффер выдает мне, что все отлично: запрос отправили, запрос пришел (такой, что требуется мне): имеются заголовки
[syntax=html4strict]
HTTP/1.1 200 OK
Server: nginx/1.2.4
Date: Sun, 12 Jan 2014 23:59:25 GMT
Content-Type: text/html; charset=windows-1251
Content-Length: 232
Connection: keep-alive
X-Powered-By: PHP/3.4090
Set-Cookie: remixlang=1; expires=Mon, 05-Jan-2015 01:45:29 GMT; path=/; domain=.vk.com
Set-Cookie: remixlang=0; expires=Mon, 05-Jan-2015 15:33:23 GMT; path=/; domain=.vk.com
Set-Cookie: remixreg_sid=; expires=Thu, 22-Jan-2015 13:48:53 GMT; path=/; domain=.vk.com
Set-Cookie: remixapi_sid=; expires=Wed, 07-Jan-2015 17:37:28 GMT; path=/; domain=.vk.com
Set-Cookie: remixrec_sid=; expires=Sat, 10-Jan-2015 15:00:31 GMT; path=/; domain=.vk.com
Set-Cookie: remixsid=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx; expires=Wed, 07-Jan-2015 07:14:33 GMT; path=/; domain=.vk.com
Pragma: no-cache
Cache-control: no-store
P3P: CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"
Content-Encoding: gzip
[/syntax]
Имеется тело получаемой страницы также присутствует, то есть getInputStream() должен это ухватить — тут я ошибиться не мог, так как код чтения входящего потока аналогичен с первого запроса.

Хочу прочесть заголовок, любой, выдает null.
Хочу вывести строковое значение входящего потока — длинна 0 символов.
[syntax=java5]
InputStream IS_VK_LOGIN = httpConn_vk_login.getInputStream();
InputStreamReader ISR_VK_LOGIN = new InputStreamReader(IS_VK_LOGIN, "windows-1251");
int c;

while ((c = ISR_VK_LOGIN.read()) != -1)
{
DATA_VK_LOGIN.append((char) c);
}

Log.d(TAG, "Длинна: " + DATA_VK_LOGIN.length());[/syntax]

В чем причина, подскажите? Уже который день я не могу двинуться далее, а остался один решающий шаг, который требует кукисы с третьего запроса.
Прикрепил весь коддинг и заранее спасибо за потраченное на меня время!
Вложения
MainActivity.zip
(3.71 КБ) 213 скачиваний

Ответить