ksoap2 HttpsTransportSE authentication

  • 6 Antworten
  • Letztes Antwortdatum
T

TortenTheo

Gast
Hallo,

auf einem IIS (Windows Server 2008) habe ich einen .NET WebService laufen.
Der WebService ist über HTTPS erreichbar und es wird die Windowsanmeldung abgefragt.

In einem Browser kann ich mich mit dem WebService über HTTPS verbinden und auch mit meinem Windowskonto anmelden.

Wenn ich das Ganze über ksoap2 HttpsTransportSE probiere gibt es Problem mit den Anmeldung. Die Verbindung über HTTPS wird hergestellt.

Folgendes funktionier ohne HTTPS:

Code:
List<HeaderProperty> headerList = new ArrayList<HeaderProperty>();
headerList.add(new HeaderProperty("Authorization", "Basic " + org.kobjects.base64.Base64.encode("xyz:abc".getBytes())));
androidHttpTransport.call(SOAP_ACTION, envelope, headerList);

Wenn ich den Code mit HTTPS teste bekomme ich als Fehler den HTTP-StatusCode 400 zurück.

Hat jemand einen Rat????

Gruß
TortenTheo
 
Ist nach dem Basic nicht ein Rufzeichen?
 
Ich hoffe ich verstehe die Frage richtig.
Nach dem Basic kommen Benutzernamen und PW codiert.
z.B.
"Basic dSeRziG"
 
Ja. Nur via Tapatalk hat es so ausgesehen als hättest du im String nach dem Basic ein " " vergessen.
 
So, habe das Problem gefunden. Es leuchte mir zwar nicht ganz ein aber was soll's.
Hier noch die Auflösung.
Also
Code:
String str=org.kobjects.base64.Base64.encode("xyz:abc".getBytes())
liefert am Ende des Strings noch einen Zeilenumbruch mit.
z.B.
"kalskdjaljkd\n"

Mit
Code:
str= str.replace("\n", "");
Zeilenumbruch entfernt und es geht.

TortenTheo
 
Probier mal die Base64 Library von Apache, mit der gehts in meiner App.
 
Ich werde es nächste Woche mal Testen.
 
Zurück
Oben Unten