HTTPS mit Apache HTTPClient

Status
Nicht offen für weitere Antworten.
C

christian234

Gast
Laut http://jakarta.apache.org/commons/httpclient/sslguide.html muss man nichts ändern um eine Seite mit https anstatt http aufzurufen. Bei der Seite https://ssl.google-analytics.com/urchin.js die ich in einem neuen Browserfenster anzeigen kann klappt es allerdings nicht mit folgendem Client. Ich bekomme nur in etwa das angezeigt:

ÌÈ$4j@a?÷áZª?KŠ}ß?œeKoéH"jèØ1mGÄ9!+Ð+6n0¸UÕ÷…»Ow{»ßAzé9¤ï!ý
aber ein Status 200/OK

Code:
package gethttp.httpClient;


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.cookie.CookieSpec;
import org.apache.commons.httpclient.methods.*;


public class Browse
{
	
	int counter;
	
    public Browse() {
        super();
    }

    public static void main(String[] args) throws Exception {
    	
    	System.getProperties().setProperty("httpclient.useragent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.10) Gecko/20070216 Firefox/1.5.0.10");
    	
    	HttpClient client = new HttpClient();
        
    	client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
        
        
    	
    	//genericGet(client, "http://www.click*optio*ns.com", true, true, true, "");

         // funtioniert weder bei Aufruf der Seite davor noch bei Angabe des Referer!!!
       	genericGet(client, "https://ssl.google-analytics.com/urchin.js", true, true, true, "http://www.cli*ckop*tions.com");

       	//genericGet(client, "http://www.clic*kopti*ons.com/web/home.do?lang=fr&country=FR&flash=yes", true, true, true, "http://www.cli*ckop*tions.com");
        
       	genericGet(client, "https://msp.f-secure.com/web-test/", true, true, true, "");

       	
    	
    }
    	
       
 
  /*
        NameValuePair vp1   = new NameValuePair("loc", "de_DE");
        NameValuePair vp2   = new NameValuePair("loginServlet", "/web/home.do");
        NameValuePair vp3   = new NameValuePair("servletParams", "&loc=de_DE");
       NameValuePair vp4   = new NameValuePair("userName", "XXX");
        NameValuePair vp5   = new NameValuePair("junkTextPassword", "XXX");
        NameValuePair vp6   = new NameValuePair("passwort", "XXX");
    
*/
    
    
    
	static void genericGet(HttpClient aClient, String aURL, boolean aStatus, boolean aCookies, boolean aPrint, String aReferer) {
		
		
// auch mit diesem Code geht es nicht		
//		aClient.getHostConfiguration().setHost("ssl.google-analytics.com", 443, "https");
//		aURL ="/urchin.js";
			
		
		
	   	GetMethod mGetMethod = new GetMethod(aURL);
	    
	   	mGetMethod.setRequestHeader( new Header( "connection", "Keep-Alive" ) );
	   	mGetMethod.setRequestHeader( new Header( "Keep-Alive", "300" ) );
	             
	   	mGetMethod.setRequestHeader( new Header( "Accept-Language", "de-DE,en;q=0.9,de;q=0.8" ) );
	   	mGetMethod.setRequestHeader( new Header( "Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7" ) );
	   	mGetMethod.setRequestHeader( new Header( "accept-encoding", "gzip,deflate" ) );
	   	mGetMethod.setRequestHeader( new Header( "Content-Type", "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" ) );
	   	mGetMethod.setRequestHeader( new Header( "Referer", aReferer ) );
	  
	   	
	   	
	   	System.out.println("GET URL: "+aURL);
	   	
	   	try {
		   	aClient.executeMethod(mGetMethod);
			
		   	if (aStatus == true) {	
	            System.out.println("Status: " + mGetMethod.getStatusCode());
		   	}

		   	if (aCookies == true) {	
		   		Cookie[] mCookies = aClient.getState().getCookies();
		        System.out.println("Present cookies: ");
		        for (int i = 0; i < mCookies.length; i++) {
		            System.out.println(" - " + mCookies[i].toExternalForm());
		        }
		   	}
   	
		   	if (aPrint == true) {	
		        
		   		String mPage;
				    
		        BufferedReader br = new BufferedReader(new InputStreamReader(mGetMethod.getResponseBodyAsStream()));
	
		        StringBuilder sb = new StringBuilder();
			    String nextline=null;
			    String nl = "\n";
			    
			    while((nextline = br.readLine()) != null) {
			    	sb.append(nextline);
					sb.append(nl);
			    }
				
			    mPage = sb.toString();
			    System.out.println("BEGIN HTML");			    
			    System.out.println(new String(mPage));
			    System.out.println("END HTML");			    
			    br.close();
			}
   	
	  
		   	
		   	
		   	
		   	
    	} catch (HttpException e) {
	      System.err.println("Fatal protocol violation: " + e.getMessage());
	      e.printStackTrace();
	    } catch (IOException e) {
	      System.err.println("Fatal transport error: " + e.getMessage());
	      e.printStackTrace();
	    } finally {
	    	mGetMethod.releaseConnection();
	    }  
	       
	   
	   
	   
	}
	


	
	
	
	
	
	
	
	static void genericPost(HttpClient aClient, String aURL, String[] aParamKey, String[] aParamValue, boolean aStatus, boolean aCookies, boolean aPrint, String aReferer) {
		
		// super.counter++;
		
	   	PostMethod mPostMethod = new PostMethod(aURL);
	    
	   	mPostMethod.setRequestHeader( new Header( "connection", "Keep-Alive" ) );
	   	mPostMethod.setRequestHeader( new Header( "Keep-Alive", "300" ) );
	             
	   	mPostMethod.setRequestHeader( new Header( "Accept-Language", "de-DE,en;q=0.9,de;q=0.8" ) );
	   	mPostMethod.setRequestHeader( new Header( "Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7" ) );
	   	mPostMethod.setRequestHeader( new Header( "accept-encoding", "gzip,deflate" ) );
	   	mPostMethod.setRequestHeader( new Header( "Content-Type", "text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5" ) );
	   	mPostMethod.setRequestHeader( new Header( "Referer", aReferer ) );
	  
	   	mPostMethod.setRequestHeader( new Header( "Content-type", PostMethod.FORM_URL_ENCODED_CONTENT_TYPE));
	    
	   	
	   	NameValuePair[] mNameValuePairs = new NameValuePair[aParamKey.length];
	   	for (int i = 0; i < mNameValuePairs.length; i++) {
	   		mNameValuePairs[i] = new NameValuePair(aParamKey[i], aParamValue[i]);
		}
	   
	   	//    authpost.setRequestBody( 
	       //      new NameValuePair[] {vp1, vp2, vp3, vp4, vp5, vp6});
	    
	    mPostMethod.addParameters(mNameValuePairs);
	          
	           
	           
  
	   	
	   	
	   	System.out.println("POST URL: "+aURL);
	   	
	   	try {
		   	aClient.executeMethod(mPostMethod);
			
		   	if (aStatus == true) {	
	            System.out.println("Status: " + mPostMethod.getStatusCode());
		        
	            String redirectLocation="";
		        Header locationHeader = mPostMethod.getResponseHeader("location");
		        if (locationHeader != null) {
		        	redirectLocation = locationHeader.getValue();
		        } else {
		               // The response is invalid and did not provide the new location for
		               // the resource.  Report an error or possibly handle the response
		               // like a 404 Not Found error.
		        }
		        System.out.println("Redirect: " + redirectLocation);

		   	}

		   	if (aCookies == true) {	
		   		Cookie[] mCookies = aClient.getState().getCookies();
		        System.out.println("Present cookies: ");
		        for (int i = 0; i < mCookies.length; i++) {
		            System.out.println(" - " + mCookies[i].toExternalForm());
		        }
		   	}
   	
		   	if (aPrint == true) {	
		        
		   		String mPage;
				    
		        BufferedReader br = new BufferedReader(new InputStreamReader(mPostMethod.getResponseBodyAsStream()));
	
		        StringBuilder sb = new StringBuilder();
			    String nextline=null;
			    String nl = "\n";
			    
			    while((nextline = br.readLine()) != null) {
			    	sb.append(nextline);
					sb.append(nl);
			    }
				
			    mPage = sb.toString();
			    System.out.println("BEGIN HTML");			    
			    System.out.println(new String(mPage));
			    System.out.println("END HTML");			    
			    br.close();
			}
   	
	  
		   	
		   	
		   	
		   	
    	} catch (HttpException e) {
	      System.err.println("Fatal protocol violation: " + e.getMessage());
	      e.printStackTrace();
	    } catch (IOException e) {
	      System.err.println("Fatal transport error: " + e.getMessage());
	      e.printStackTrace();
	    } finally {
	    	mPostMethod.releaseConnection();
	    }  
	       
	   
	   
	   
	}

	
    
    
}


Eine andere Verbindung zu https://msp.f-secure.com/web-test/ funktioniert und ich bekomme Klartext. Auf der Seite wo ich mich einloggen möchte werden über google-analytics Cookies gesetzt und eventuell brauche ich die, um mich einloggen zu können für die Session. Daher würde ich gerne dieses Skript auf https://ssl.google... aufrufen.
 
C

Christian234

Gast
Sorry, ich gebe einfach zu schnell auf und übersehe die Details:

accept-encoding", "gzip,deflate" sollte ich natürlich nicht verwenden, wenn ich dann nicht bereit bin es auch zu entpacken....

aber vllt können andere auch davon lernen wenn ich die Fehler hier sammle ;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Q HTTPS mit Apache HttpClient Netzwerkprogrammierung 4
FrankenDerStein HTTP Https Server Bibliothek für Linux und Android gesucht. Netzwerkprogrammierung 7
JaXnPriVate Java HTTPS Server (Secure Sockets) Netzwerkprogrammierung 15
Thallius HTTP Kann man den Raw HTTPS Request irgendwie ausgeben lassen? Netzwerkprogrammierung 6
G localhost im Backend https vs. http Netzwerkprogrammierung 9
T HTTPS-Requests an Server: POST-Parameter kommen nicht an Netzwerkprogrammierung 5
M HTTPS Login & etwas posten Netzwerkprogrammierung 0
M Proxy und HTTPS Netzwerkprogrammierung 3
Thallius HTTP HTTPS unter Java 1.6 schlägt fehl Netzwerkprogrammierung 4
agent47 HTTPs Server Netzwerkprogrammierung 5
GENiALi Grizzly mit HTTPS Netzwerkprogrammierung 0
N Hintergrundlogin HTTPs Webform Netzwerkprogrammierung 5
E Gruppenchat: Über HTTPS oder nicht? Netzwerkprogrammierung 5
K HTTPS Zertifikat Netzwerkprogrammierung 3
F C/S über HTTPS Netzwerkprogrammierung 2
NoXiD Java mit HTTPS verbinden Netzwerkprogrammierung 6
T Up- und Download mit https Netzwerkprogrammierung 14
M HTTP HTTPS-Verbindung mittels Java und Javascript Netzwerkprogrammierung 2
T HTTPS einloggen Netzwerkprogrammierung 9
L Https Verbindung wird aus jar heraus nicht aufgebaut Netzwerkprogrammierung 12
E HTTPS Debuggen (verschlüsselte Daten anzeigen)? Netzwerkprogrammierung 12
M HTTPS Seiten runterladen Netzwerkprogrammierung 2
A HTTPS-Request via Proxy mit Konfigurationsskript Netzwerkprogrammierung 3
P HTTPS - öffentliches Zertifikat - ermitteln Netzwerkprogrammierung 5
G file download über https mit p12 Zertifikat Netzwerkprogrammierung 4
D HTTP Apache-HttpClient/UNAVAILABLE (java 1.4) Netzwerkprogrammierung 18
Nuiton FTP Apache Commons: FTPClient und Sicherheit Netzwerkprogrammierung 9
N FTP FTP Client invalid IPv6 address (Apache Commons Net API) Netzwerkprogrammierung 6
G apache httpClient Problem. Netzwerkprogrammierung 5
D Apache Mina Serial: Error Netzwerkprogrammierung 2
M Apache HTTPClient Server log ausgeben ?! Netzwerkprogrammierung 3
N HTTP Apache 4.2.1 HttpClient 302 nach Login und auf den weiteren Seiten. Netzwerkprogrammierung 5
R Apache HttpClient File Download? Netzwerkprogrammierung 3
0 Apache Commons File Object bekommen Netzwerkprogrammierung 4
W HTTP Apache HttpComponents und GZIP Netzwerkprogrammierung 2
F Apache commons net SFTPClient Netzwerkprogrammierung 5
D Apache CXF, JAX-WS Problem bei Arrays - einfacher Server Netzwerkprogrammierung 2
M Apache Solr doc & pdf Upload Netzwerkprogrammierung 8
M need org.apache.commons.httpclient.* Netzwerkprogrammierung 8
C apache commons net ftp bei upload unvollständig Netzwerkprogrammierung 3
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
R Apache Mina - Hilfestellung Netzwerkprogrammierung 32
D Apache Mina und GWT Servlet Netzwerkprogrammierung 4
N SFTP apache keine Verbindungaufbau möglich Netzwerkprogrammierung 6
K Login via apache httpclient Netzwerkprogrammierung 4
dayaftereh Fragen zu Apache Mina? Netzwerkprogrammierung 5
T HTTP Apache Commons HttpClient Bibliothek Netzwerkprogrammierung 2
Kr0e Apache Mina -> await() Netzwerkprogrammierung 30
B Tomcat Apache Server Netzwerkprogrammierung 6
lordcarlos HTTP Apache HttpClient, post und login. Netzwerkprogrammierung 2
J org.apache.http.auth.NTCredentials Netzwerkprogrammierung 2
A org.apache.commons http client in Netbeans einbinden Netzwerkprogrammierung 3
T Apache HttpClient & Default Headers Netzwerkprogrammierung 9
T apache HTTPClient einloggen Netzwerkprogrammierung 2
Kr0e Apache Mina Problem Netzwerkprogrammierung 2
G apache von außen zugänglich machen Netzwerkprogrammierung 5
1 Upload problem! org.apache.commons.net.ftp Netzwerkprogrammierung 3
S Google Search Webservice mit Apache Axis realisieren? Netzwerkprogrammierung 2
I Apache http-client: Problem beim Proxyaufruf Netzwerkprogrammierung 2
S Applet und JWS auf Apache-Axis (SOAP) Netzwerkprogrammierung 8
M org.apache.commons.httpclient.HttpClient Netzwerkprogrammierung 3
J Antwort eines Soaprequests parsen mittels org.apache.soap Netzwerkprogrammierung 2
B Via Java Datei zu PHP-Script auf Apache hochladen Netzwerkprogrammierung 4
A http request per socket an apache server Netzwerkprogrammierung 5
B HttpClient - Server (Jetty) - getInputStream - EOF Netzwerkprogrammierung 3
B HttpClient Netzwerkprogrammierung 2
M HTTP HTTPClient Authentication - Quickr Server Netzwerkprogrammierung 8
H Java 1.4 HTTPClient Content von PutMethod Netzwerkprogrammierung 4
P HttpClient - Daten einer Website "unvollständig" Netzwerkprogrammierung 5
M Dateiupload mittels HttpClient Netzwerkprogrammierung 3
F FileUpload mit commons HttpClient Netzwerkprogrammierung 17
H HTTP Login mit POSTMethod und httpClient Netzwerkprogrammierung 5
B HTTP Probleme mit HttpClient? Netzwerkprogrammierung 2
H Bilder mit HttpClient hochladen Netzwerkprogrammierung 3
T HttpClient - Senden via Post Netzwerkprogrammierung 12
M httpclient kann sich nicht auf asp.net Seite anmelden Netzwerkprogrammierung 2
M Seltsame Fehlermeldung (httpclient) Netzwerkprogrammierung 6
A Jakarta Commons HTTPClient: Mehrere Requests gleichzeitig Netzwerkprogrammierung 2
E HttpClient und return Problem Netzwerkprogrammierung 6
K Bad Request nach Form Login in Jakarta HttpClient Netzwerkprogrammierung 4
J Jakarta HTTPClient Netzwerkprogrammierung 5
D Problem beim holen einer PHP-Seite via HttpClient Netzwerkprogrammierung 19
S mit HttpClient Seiteninhalt lesen Netzwerkprogrammierung 8
P jakarta.HttpClient: Port bei GetMethod angeben Netzwerkprogrammierung 3

Ähnliche Java Themen

Neue Themen


Oben