2011-08-08 5 views
3

Мое приложение запрашивает другие веб-службы через SSL. Я использовал Apache HttpClient для создания вызовов https POST на моем сервере для других веб-сервисов. Когда я разворачивал мое приложение App Engine Я получил следующее сообщение об ошибке:Как сделать HTTPS-вызов в App Engine

java.lang.NoClassDefFoundError: javax.net.ssl.KeyManagerFactory is a restricted class. 
Please see the Google App Engine developer's guide for more details. 

Мой вопрос, как я могу сделать HTTPS звонки на Google App Engine?

ответ

4

Apache HttpClient не поддерживается out-of-the-box от App Engine. Вам придется написать настраиваемый диспетчер соединений, который обертывает UrlFetch. This post объясняет это довольно хорошо и предоставляет вам образец кода. Раньше я использовал этот код в App Engine.

1

Вы можете просто использовать класс URL для соединения HTTPS на app-engine.

Что-то вроде этого -

URL url = new URL(yourHttpsURL); 
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream())); 
StringBuilder responseBody = new StringBuilder(); 
String line; 

while ((line = reader.readLine()) != null) 
    responseBody.append(line); 

reader.close(); 

Приложение двигатель также поддерживает проверку хоста с помощью класса FetchOptions в API низкого уровня.

Смежные вопросы