Java J2ME中的HTTP认证
我正在尝试创建一个J2ME应用程序,它使用Java J2ME中的HTTP认证,java,mobile,java-me,midp,Java,Mobile,Java Me,Midp,我正在尝试创建一个J2ME应用程序,它使用连接器与Web服务器对话 当我与Web服务器交谈时,我必须使用基本的HTTP身份验证,这通常类似于 但是在J2ME中,当我构造这种形式的url时,它不起作用 我还尝试添加请求属性, hc=(HttpConnection)连接器。打开(url); hc.setRequestProperty(“用户”、“阿拉古”); setRequestProperty(“pass”、“mypassword”); 但是没有起作用 以前有人做过基于j2me的HTTP身份
连接器与Web服务器对话
当我与Web服务器交谈时,我必须使用基本的HTTP身份验证,这通常类似于
但是在J2ME中,当我构造这种形式的url时,它不起作用
我还尝试添加请求属性,
hc=(HttpConnection)连接器。打开(url);
hc.setRequestProperty(“用户”、“阿拉古”);
setRequestProperty(“pass”、“mypassword”);
但是没有起作用
以前有人做过基于j2me的HTTP身份验证吗?提前感谢。可能是J2ME不支持基本身份验证,我可能错了。如果您想自己尝试在请求中设置身份验证头,那么您可能需要一个不同的头,然后您使用的是什么 从: 要接收授权,客户端将发送用户ID和密码, 由一个冒号(“:”)字符分隔,在base64[7]中 凭据中的编码字符串 [……] 如果用户代理希望发送用户ID“Aladdin”和密码 “打开芝麻”,它将使用以下标题字段:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
因此,只需创建字符串“User:Password”,base64对其进行编码,然后调用
setRequestProperty(“Authorization”,“Basic”+encodedUserAndPass)
难以置信,它就像一个符咒:
String url = "hppt://www.example.com";
HttpConnection hc = (HttpConnection) Connector.open(url);
hc.setRequestProperty("Authorization", "Basic "+ BasicAuth.encode("user", "password"));
我使用了Bouncy Castle加密库的Base64编码器/解码器。它在克服javame/j2meapi设置的许多限制方面非常强大。它是开源的,适用于Java ME和Android。为了让事情变得更有趣,J2ME在MIDP2.0中没有包含Base64编码器。一些供应商提供自己的,所以要小心导入它们(Sun的WTK有一个,但它只在WTK中)。从表面上看,你最好包括你自己,比如:嗨,阿拉古,你是如何解决这个问题的。你是怎么做基本认证的,你能告诉我怎么做基本认证吗。在j2me中。。。please@SajidShaikh我尝试了wds的解决方案,效果很好。