Android Рестлет HTTPS - PullRequest
5 голосов
/ 20 мая 2011

При попытке получить некоторые данные о моем клиенте Android из моего веб-сервиса (работающего на app-engine) с этим кодом

ClientResource cr = new ClientResource("https://myapp.appspot.com/restlet/service/");
IServiceResource res = cr.wrap(IServiceResource.class);
m_Services = res.getServices();

Я получаю эту ошибку:

05-20 08:30:15.406: ERROR/AndroidRuntime(31767): Caused by: Communication Error (1001) - Could not change the mode after the initial handshake has begun.

У меня есть org.restlet.ext.ssl.jar для поддержки https, и я использую эту строку для добавления клиента

Engine.getInstance().getRegisteredClients().add(new HttpsClientHelper(null));

это самое близкое к тому, что я пришел к получению вызовов https: // на работу с тех пор, как перешел на рестлет 2.1m4 (переехал, потому что мне нужен был entityBuffering ..)

Есть идеи? Любая другая информация, которой я хочу поделиться?

Ответы [ 2 ]

3 голосов
/ 27 мая 2011

Получил это работает. HttpClient изменен на org.restlet.ext.net.

На Android вам говорят сделать это, чтобы сменить клиента

Engine.getInstance().getRegisteredClients().add(new HttpClientHelper(null));

Тем не менее, ничего не изменится, вместо этого я добился успеха с

Engine.getInstance().getRegisteredClients().clear();
Engine.getInstance().getRegisteredClients().add(new HttpClientHelper(null));

Это решает проблему (обязательно укажите org.restlet.ext.ssl ​​в вашем пути сборки). Это также решает другие проблемы, такие как «Внутренняя ошибка соединителя (1002) - истек тайм-аут вызывающего потока в ожидании ответа на разблокировку».

0 голосов
/ 20 мая 2011

Я работал с веб-сервисом, используя ksoap2, вы можете попробовать использовать ksoap2, скачав jar и включив его в ваш проект.

...