Hey, ich versuche, die HTML von einer Twitter-Profilseite zu bekommen, aber httpurlconnection gibt nur einen kleinen Ausschnitt des HTML zurück. Mein Codejava httpurlconnection abschneiden 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();
}
Ich bekomme immer 200 als Antwortcode für jeden Anruf. Jedoch wird etwa 1/3 der Zeit das gesamte HTML-Dokument zurückgegeben, und die andere Hälfte nur die ersten paar hundert Zeilen. Der Betrag, der zurückgegeben wird, wenn der HTML-Code abgeschnitten wird, ist nicht immer derselbe.
Irgendwelche Ideen? Danke für jede Hilfe!
Zusätzliche Info: Nach dem Anzeigen der Header scheint es, dass ich doppelte Content-Length-Header bekomme. Die erste ist die volle Länge, die andere ist viel kürzer (und wahrscheinlich repräsentativ für die Länge, die ich die meiste Zeit bekomme) Wie kann ich mit doppelten Headern umgehen?
Ich würde den Code mit einer anderen URL versuchen. Ich vermute, dass Twitter-Server eine Art Lastregelung durchführen. –
Zusätzliche Info: Nach dem Anzeigen der Header scheint es, dass ich doppelte Content-Length-Header bekomme. Die erste ist die volle Länge, die andere ist viel kürzer (und wahrscheinlich repräsentativ für die Länge, die ich die Zeit bekomme) Wie kann ich mit doppelten Headern umgehen? – JDetloff