org.apache.http.client.ClientProtocolException

8

Ich habe eine Android-Anwendung erstellt, die ein X509-Zertifikat verwendet (das sich im Ordner res / raw / mykeystore.bks befindet), um den Remoteserver zu signieren, der auf dem Port 9006 antwortet.

Der Server fragt mich nach einem Login (Benutzername, Passwort).

Wenn ich ein HTTPGet mache, habe ich die folgende Ausnahme: org.apache.http.client.ClientProtocolException

Hier ist meine Implementierung:

Die Hauptaktivität:

%Vor%

Benutzerdefinierte Client-Klasse:

%Vor%

Meine Customc SSLSoketFactory-Klasse:

%Vor%

Was ist falsch in meiner Bewerbung? Was verursacht diese Ausnahme?

Danke euch allen!

BEARBEITEN:

Ich sah besser die Ausnahme aus:

cause = org.apache.http.auth.MalformedChallengeException: Authentifizierungsanforderung ist leer.

EDIT 2:

Ich habe versucht, diese Implementierung ohne Unterschied zu verwenden, Ich habe die gleiche Ausnahme!

EDIT 3: Ich habe

ersetzt %Vor%

client) .setCredentialsProvider (credProvider);

mit der Basis httpclient autentication, Hinzufügen der Header-Autorisierung zum httpGet:

%Vor%

Jetzt schickt mir der Server diese Nachricht:

%Vor%     
Marco 21.11.2012, 13:17
quelle

1 Antwort

10

Das Problem war der Authorization-Header.

Wir müssen verwenden:

%Vor%

Anstelle von:

%Vor%

, weil der DEFAULT-Parameter den Zeilenabschluss "CR" am Ende der Zeichenfolge hinzufügt und nicht korrekt ist, wenn Sie diese Überschrift verwenden.

    
Marco 23.11.2012, 14:05
quelle