LINUX.ORG.RU

[Java][быдлопроблемы] URLConnection.getConnectLength выдает -1 при подключении к вконтактику


0

1

Посоны, страшная проблема, мое джява приложение выдает неверное ContentLength при подключении к вконтактику

Берем стандартный пример из ноутона-шилдта

import java.net.*;
import java.io.*;

class TestClass {
	public static void main (  String args [] ) throws Exception
	{
		int c;
		URL hp = new URL ("http://vkontakte.ru");
		URLConnection hpCon = hp.openConnection();
		int len = hpCon.getContentLength();
		if (len > 0 )
		{
			InputStream input = hpCon.getInputStream();
			int i = len;
			while (((c = input.read()) != -1) && (--i > 0)) {
				System.out.print((char)c);
			}
			input.close();
		}
		else
		{
			System.out.println("No content");
		}	
	}
}

если вписать вместо http://vkontakte.ru, например http://ya.ru, то приложение выдаст что надо:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>
и т.д.

а вот при http://vkontakte.ru - No content, т.е. getContentLength возвращает значение < 0

при http://vkontakte.ru/login.php и т.п. тоже самое

ЧЗХ?!

И как выводить узнать тогда ContentLength? (проверять c на = NULL не комильфо) Почему такое именно с вконтактиком, с другими серверами таких проблем не замечал.

Может вконтакте не передаёт контент ленгтх вообще? Может там та версия HTTP, где длина указывается в первой строке блока данных (после заголовков)?

Ну есть такой HTTP, в котором длина указываецца так:

HTTP/100.500 200 OK
X-Bulkoedstvo: hehehe
X-Sobaka-kusaka: miau

8c2
Ai-nane, nane nane... content is going to be here, gav gav, miau miau...

kiverattes ★☆ ()

подозреваю, что вконтактик фильтрует ботов по UA.

JFreeM ★★★☆ ()
Ответ на: комментарий от kiverattes

Зелёный квадратик, ты могуч и зло№№%ч. Что ты понаписал заместо привычных метасинтаксических переменных? Ужас какой-то.

anonymous ()

Use Apache Http Client, Luke!

dizza ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.