Frage

Ich versuche, eine J2ME App zu erstellen, die auf Web-Server mit HttpConnection Anschluss spricht.

Als ich in die WebServer spreche, muss ich mit Basic-HTTP Auth authentifizieren, das geht normalerweise wie

http://username:password@website.com/rest/api/method

Aber in J2ME, wenn ich eine URL dieser Form konstruieren, funktioniert es nicht.

Ich habe versucht, auch das Hinzufügen Anfrage Eigenschaft, hc = (HttpConnection) Connector.open(url); hc.setRequestProperty("User", "alagu"); hc.setRequestProperty("pass", "mypassword");

aber hat nicht funktioniert.

Hat jemand vor J2ME HTTP Auth gemacht? Vielen Dank im Voraus.

War es hilfreich?

Lösung

Es könnte sein, J2ME keine Unterstützung für die Basisauthentifizierung hat, könnte ich falsch sein. Wenn Sie versuchen wollen nur in der Anforderung die Authentifizierungskopfeinstellung selbst werden Sie wahrscheinlich brauchen einen anderen Header dann, was Sie verwenden.

Von der rfc :

  

Um Genehmigung zu erhalten, der Client den Benutzer-ID und das Passwort sendet,     durch einen einzigen Doppelpunkt ( „:“) getrennt Zeichen innerhalb eines Base64 [7]     codierte Zeichenfolge in den Anmeldeinformationen.

     

[...]

     

Wenn die User-Agent wünscht, den Benutzer-ID „Aladdin“ und das Passwort schicken     „Sesam öffne dich“, würde es die folgenden Header-Feld verwenden:

 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

So erstellen Sie einfach die Zeichenfolge "Benutzer: Passwort", kodieren base64 es und dann setRequestProperty("Authorization", "Basic "+ encodedUserAndPass) nennen

Andere Tipps

Unglaublich, es wirkt wie ein Zauber:

String url = "hppt://www.example.com";
HttpConnection hc = (HttpConnection) Connector.open(url);
hc.setRequestProperty("Authorization", "Basic "+ BasicAuth.encode("user", "password"));

Ich benutzte Hüpfburg Verschlüsselungsbibliothek Base64 Encoder / Decoder. Es ist sehr leistungsfähig in viele Begrenzungen von Java ME / J2ME-API zu überwinden. Es ist Open-Source und es funktioniert sowohl für Java ME und Android.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top