Эй, я пытаюсь получить HTML от страницы профиля в Твиттере, но httpurlconnection только возвращает маленький отрывок HTML. Мой код
for(int i = 0; i < urls.size(); i++)
{
URL url = new URL(urls.get(i));
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6");
System.out.println(connection.getResponseCode());
String line;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while((line = reader.readLine()) != null)
{
builder.append(line);
}
String html = builder.toString();
}
Я всегда добираюсь 200 как код ответа для каждого вызова. Однако о 1/3 времени весь документ HTML возвращается, и другая половина только первой нескольких сотен строк. Сумма, возвращенная, когда HTML является сокращением, является не всегда тем же.
Какие-либо идеи? Спасибо за любую справку!
Дополнительная Информация: После просмотра заголовков кажется, что я получаю дублирующиеся заголовки довольной длины. Первым является полное, другой намного короче (и вероятно представитель длины, я получаю часть времени), Как я могу обработать дублирующиеся заголовки?
У меня это сработало, я добавил новую строку после builder.append (line);
, чтобы сделать ее более читаемой в консоли, но кроме этого он вернул весь HTML для этой страницы:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
public class RetrieveHTML {
public static void main(String[] args) throws IOException {
List<String> urls = new ArrayList<String>();
urls.add("http://stackoverflow.com/questions/3285077/java-httpurlconnection-cutting-off-html");
for (int i = 0; i < urls.size(); i++) {
URL url = new URL(urls.get(i));
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6");
System.out.println(connection.getResponseCode());
String line;
StringBuilder builder = new StringBuilder();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
while ((line = reader.readLine()) != null) {
builder.append(line);
builder.append("\n");
}
String html = builder.toString();
System.out.println("HTML " + html);
}
}
}