如何在App Engine上进行HTTPS调用

时间:2011-08-08 02:17:05

标签: java google-app-engine ssl

我的应用通过SSL查询其他网络服务。我已经使用Apache HttpClient在我的服务器上创建https POST调用到其他Web服务。当我将我的应用程序部署到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.

我的问题是,如何在Google App引擎上进行HTTPS调用?

2 个答案:

答案 0 :(得分:4)

App引擎不支持Apache HttpClient out-of-the-box。您必须编写一个包装UrlFetch的自定义ConnectionManager。 This post很好地解释了它并为您提供了示例代码。我之前在App Engine上成功使用了该代码。

答案 1 :(得分:1)

您可以使用网址类在app-engine上建立HTTPS连接。

像这样 -

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();

应用引擎还支持使用低级API中的FetchOptions类进行主机验证。