HttpURLConnection Fehler bei Abfrage des Seitenquelltextes einer Homepage

Badner

Grünschnabel
Ich versuche ein Programm zu schreiben um von einer bestimmten Seite die Seitenzahlen auszulesen. Allerdings klappt nicht alles und ich finde einfach nicht raus warum.

Meine Seitenzahlen Methode sieht so aus:

Java:
static int NumberofPages() throws MalformedURLException, IOException
	{
		int number;
		String Link;
		LinkedList<String> Source = new LinkedList<String>();
		String Temp;
		
				for(number = 1; number <= 5000; number += 500)
				{
					Link = "****"+ number;
					Source.addAll(getSource(Link));
					Temp = Source.get(102);     //In zeile 102 steht die 404 Meldung bei einem Fehler
					
					if (Temp.contains("404"))     //Fehlermeldung auf der Seite => keine weiteren Seiten
					{
						while(true)
						{
							number -= 100;
							Link = "****"+ number;
							Source.addAll(getSource(Link));
							Temp = Source.get(102);
							if(!Temp.contains("404"))
							{
								do
								{
									number++;
									Link = "****"+     number;
									Source.addAll(getSource(Link));
									Temp = Source.get(102);
								}while(Temp.contains("404"));
							}
						}
					}
				}
		
		number--;
		return number;
	}
	
}

Der Fehler tritt immer beim dritten Durchlauf in der ersten Schleife auf.
Hier die Fehlermeldung von Eclipse:

Code:
HttpURLConnection.getInputStream() line: 1469 [local variables unavailable]
BasicCookie.getSource(String) line:11
OrlyDB.NumberofPages() line: 31

Hier noch die getSource Methode:
Java:
static LinkedList<String> getSource(String uri) throws MalformedURLException, IOException
	{
	String line = null;
	String userAgent = "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0";
	LinkedList<String> Source = new LinkedList<String>();
	LinkedList<String> cookie = null;
	String cock = null;
	String cookieName = null;
	String cookieValue = null;
	
	cookie = getCookie(uri);
	
	URL url = new URL(uri);
	HttpURLConnection connection = (HttpURLConnection)url.openConnection();
	
	connection.setRequestMethod("GET");
	connection.addRequestProperty("User-Agent", userAgent);
	HttpURLConnection.setFollowRedirects(false);
	
	for(int i = 0; i < cookie.size(); i++)
	{
	cock = cookie.get(i);
	cock = cock.substring(0, cock.indexOf(";"));
	cookieName = cock.substring(0, cock.indexOf("="));
    cookieValue = cock.substring(cock.indexOf("=") + 1, cock.length());
	connection.setRequestProperty(cookieName, cookieValue);
	}
	
	connection.connect();
	
	BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));
	
	while(((line = rd.readLine()) != null))
	{
       Source.add(line);
    }
	connection.disconnect();
    
	return Source;
	}

	static LinkedList<String> getCookie(String uri) throws IOException
	{
		String userAgent = "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0";
		URL url = new URL(uri);
		HttpURLConnection connection = (HttpURLConnection)url.openConnection();
		connection.setRequestMethod("GET");
		connection.addRequestProperty("User-Agent", userAgent);
		HttpURLConnection.setFollowRedirects(false);
		connection.connect();
		LinkedList<String> cookie = new LinkedList<String>();
			String headerName = null;
			for (int i = 1; (headerName = connection.getHeaderFieldKey(i))!=null; i++) {
			 	if (headerName.equals("Set-Cookie")) {    
				cookie.add(connection.getHeaderField(i));
			 	}
			 	}
			connection.disconnect();
	return cookie;
	}


Wäre wirklich toll wenn jemand mal drüber schauen könnte, ich komm einfach nicht auf den Fehler :(
Vielen Dank
 
Zurück