Question

Je suis en train de créer une application J2ME, qui parle à l'aide webserver connecteur HttpConnection.

Quand je parle au serveur web, je dois authentifier à l'aide auth HTTP de base, qui va normalement

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

Mais J2ME, quand je construis une URL de cette forme, il ne fonctionne pas.

J'ai aussi essayé d'ajouter des biens de demande, hc = (HttpConnection) Connector.open(url); hc.setRequestProperty("User", "alagu"); hc.setRequestProperty("pass", "mypassword");

mais ne fonctionne pas.

Quelqu'un at-il fait auth HTTP basé sur J2ME avant? Merci à l'avance.

Était-ce utile?

La solution

Il pourrait être J2ME n'a pas de support pour l'authentification de base, je peux me tromper. Si vous voulez essayer de régler simplement l'en-tête d'authentification dans la demande vous, vous aurez probablement besoin d'un en-tête différent de ce que vous utilisez.

De la rfc:

  

Pour obtenir l'autorisation, le client envoie l'ID utilisateur et mot de passe,     séparés par un seul deux points ( « : ») caractère, dans un base64 [7]     chaîne codée dans les informations d'identification.

     

[...]

     

Si l'agent utilisateur souhaite envoyer le code d'utilisateur « Aladdin » et mot de passe     « Sésame », il utiliserait le champ d'en-tête suivant:

 Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Il suffit donc de créer la chaîne « Utilisateur: Mot de passe », base64 encoder puis appeler setRequestProperty("Authorization", "Basic "+ encodedUserAndPass)

Autres conseils

Incroyable, cela fonctionne comme un charme:

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

je base64 encodeur / décodeur de bibliothèque cryptographique Bouncy Castle. Il est très puissant pour surmonter beaucoup de limites définies par l'API Java ME / J2ME. Il est open source et il fonctionne aussi bien pour Java ME et Android.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top