哪个restlet HTTPS客户端在android上使用?

时间:2012-10-20 20:13:51

标签: restlet restlet-2.0

我是restlet的新手,并试图了解我应该在android上使用哪个HTTPS客户端选项。对于Android,哪种HTTPS客户端选项最强大且最稳定? 我正在使用restlet 2.1rc4(和2.1.0),以及android 2.2。不幸的是,改变Android版本对我来说不是一个选择。

我认为可能性是:

  1. Apache HttpClient(org.restlet.ext.httpclient)
  2. .net客户端(org.restlet.ext.net)
  3. Restlet内部客户端
  4. 我在org.restlet.ext.net上取得了一些成功,它大部分时间都有效,但是我遇到了“通信错误(1001)与”断管“之类的消息的各种异常,还有很多直接的情况从没有向服务器发送请求的客户端请求返回状态为“null(-1)”。也许这是由我们正在使用的旧android中的错误引起的,但我不是很确定。

    我尝试使用Apache客户端,但根本无法使用HTTPS,因为它会产生以下异常:java.lang.IllegalStateException:Scheme'https'未注册。相同的代码在Windows上使用org.restlet.ext.net.jar的Jave SE版本,但是当我使用相同jar文件的Android版本时,它表示https未注册。我认为Apache客户端在Android上支持HTTPS,但它对我不起作用。

    我也尝试过内部客户端,但这根本不起作用。我得到与Android RESTLet SSL Null Pointer相同的1001错误问题。我用restlet 2.1.0和android 2.2尝试了这个。

    我的源代码基本上是这样的(显示尝试使用Apache客户端):

    context = new org.restlet.Context();
    Engine.getInstance().getRegisteredConverters().add(new JacksonConverter());
    Engine.getInstance().getRegisteredClients().add(new org.restlet.ext.httpclient.HttpClientHelper(null));
    client = new org.restlet.Client(context, org.restlet.data.Protocol.HTTPS);
    context.setClientDispatcher(client);
    ClientResource resource = new ClientResource(context, url);
    resource.setEntityBuffering(true);
    PojoResult result = resource.post(new PojoRequest, PojoResult.class);
    

1 个答案:

答案 0 :(得分:0)

Restlet Framework的新2.2版本已基于HttpURLConnection(之前在org.restlet.ext.net扩展名中)更改了其内部HTTP / HTTPS客户端。对于org.restlet.jar来说,它的尺寸更稳定,更轻。