Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java J2ME中的HTTP认证_Java_Mobile_Java Me_Midp - Fatal编程技术网

Java J2ME中的HTTP认证

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身份

我正在尝试创建一个J2ME应用程序,它使用
连接器与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的解决方案,效果很好。