Zum Inhalt springen

HttpUrlConnection und FollowRedirects


Scratch

Empfohlene Beiträge

Hi,

ich habe mir ein kleines Java Programm geschrieben das bei Eingabe einer URL den Quellcode anzeigt. Vor kurzem hab ich jedoch eine Seite erwischt mit einem kleinen Skript (cgi script schätze ich) bei dem die Ausgabe ein HTTP 302 (Document Found) Status ist. Da aber zB ein Browser die richtige Seite direkt aufruft, ohne den Status anzuzeigen, möchte ich das natürlich auch. Dabei stosse ich aber auf ein paar Problemchen.

java.net.HttpURLConnection

hier ist beschrieben das FollowRedirects und InstanceFollowRedirects default auf true sind, also eine Weiterleitung bei HTTP Status 3xx stattfinden sollte ... Ich habe jetzt nochmal explizit beide Werte auf true gesetzt aber es funktioniert nicht :(

Weiss jemand weiter ??

Danke!!

Gruß Scratch

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hier noch der Code ...

public String parse(String strUrl) throws ConnectException

{

	strContent = "";


	try

	{

		if((strUrl != null) && (strUrl.startsWith("https")))

		{

			System.setProperty("java.protocol.handler.pkgs","com.sun.net.ssl.internal.www.protocol");

			java.security.Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

		}			


		// Timeouts setzen	

		propertiesSystem.setProperty("sun.net.client.defaultConnectTimeout",5000);

		propertiesSystem.setProperty("sun.net.client.defaultReadTimeout",5000);


		// Proxy setzen

		enableProxy();


		URL url = new URL(strUrl);


		HttpURLConnection huc = (HttpURLConnection) url.openConnection();


		huc.setFollowRedirects(true);

		huc.setInstanceFollowRedirects(true);


		huc.setDoOutput(true);

		huc.setDoInput(true);


		if(getMethod().equals("POST"))

		{

			huc.setRequestMethod("POST");


			huc.setRequestProperty("Content=length",String.valueOf(strPostParameters.getBytes().length));

			OutputStreamWriter outputStreamWriter = new OutputStreamWriter(huc.getOutputStream());

			outputStreamWriter.write(strPostParameters);

			outputStreamWriter.flush();

			outputStreamWriter.close();

		}

		else

		{

			huc.setRequestMethod("GET");			

			huc.connect();

		}


		InputStream inputStream = huc.getInputStream();

		InputStreamReader inputStreamReader = new InputStreamReader(inputStream,getCharSet());

		BufferedReader bufferedReader = new BufferedReader(inputStreamReader);


		String strTempContent = bufferedReader.readLine();

		while(strTempContent != null)

		{ 

			strContent += strTempContent;

			strTempContent = bufferedReader.readLine();

			strContent += "\n";

		}


		bufferedReader.close();

		inputStreamReader.close();

		inputStream.close();


		// Proxy entfernen

		disableProxy();


		// Timeouts entfernen

		System.getProperties().remove("sun.net.client.defaultConnectTimeout");

		System.getProperties().remove("sun.net.client.defaultReadTimeout");


		huc.disconnect();

	}

	catch(ConnectException e)

	{ 

		throw e;

	}

	catch(Exception e)

	{ 

		e.printStackTrace();

	}


	return strContent;

}
Die Ausgabe ist leider ...
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<HTML><HEAD>

<TITLE>302 Found</TITLE>

</HEAD><BODY>

<H1>Found</H1>

The document has moved <A HREF="http://...">here</A>.<P>

<HR>

<ADDRESS>Apache/1.3.31 Server at ... Port 443</ADDRESS>

</BODY></HTML>

und nicht die eigentliche Seite.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...