在Android中安全HTTPS POST

时间:2013-11-13 06:46:08

标签: android rest post https socketfactory

我是Android开发的菜鸟,所以请耐心等待。我正在尝试弄清楚如何在Android中为REST API调用创建安全的HTTPS POST,我尝试了以下方法(在Secure HTTP Post in Android提供)

private HttpClient createHttpClient()
{
    HttpParams params = new BasicHttpParams();
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
    HttpProtocolParams.setContentCharset(params, HTTP.DEFAULT_CONTENT_CHARSET);
    HttpProtocolParams.setUseExpectContinue(params, true);

    SchemeRegistry schReg = new SchemeRegistry();
    schReg.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
    schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));
    ClientConnectionManager conMgr = new ThreadSafeClientConnManager(params, schReg);

    return new DefaultHttpClient(conMgr, params);
}

但是,我将其粘贴到我的代码中,我认为我导入了所有必要的内容,但Eclipse正在抱怨这一行:

schReg.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));

它说“方法getSocketFactory()未定义为SSLSocketFactory类型”。这是否被弃用了,有没有更新的方法呢?

非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:1)

我弄清楚我的问题是什么。我导入了javax.net.ssl.SSLSocketFactory而不是org.apache.http.conn.ssl.SSLSocketFactory。 Eclipse自动添加了错误的import语句。

感谢位于http://thinkandroid.wordpress.com/2009/12/31/creating-an-http-client-example/#comment-77

的评论