2010-04-08 53 views
31

我是在Android中实现HTTPS连接的新手。基本上,我试图使用org.apache.http.client.HttpClient连接到服务器。我相信,在某些时候,我需要访问应用程序的密钥库才能使用私钥授权我的客户端。但是,目前,我只是想连接并看看会发生什么;我不断收到HTTP/1.1 400错误请求错误。Android HttpClient和HTTPS

我似乎无法使头或尾这尽管有许多例子(没有人似乎为我工作)。我的代码看起来像这样(BODY常量是XmlRPC):

private void connect() throws IOException, URISyntaxException{ 

    HttpPost post  = new HttpPost(new URI(PROD_URL)); 
    HttpClient client = new DefaultHttpClient(); 

    post.setEntity(new StringEntity(BODY)); 
    HttpResponse result = client.execute(post); 

    Log.d("MainActivity", result.getStatusLine().toString()); 

} 

所以,很简单。如果有人有任何建议,请告诉我。谢谢!

回答

16

这应该让你开始。我使用基本相同,除了ThreadSafeClientConnManager

SchemeRegistry schemeRegistry = new SchemeRegistry(); 
schemeRegistry.register(new Scheme("https", 
      SSLSocketFactory.getSocketFactory(), 443)); 

HttpParams params = new BasicHttpParams(); 

SingleClientConnManager mgr = new SingleClientConnManager(params, schemeRegistry); 

HttpClient client = new DefaultHttpClient(mgr, params); 
+2

感谢您的快速反应。我实际上早先尝试了一种类似的方法,但没有运气相同的错误请求错误。 – harrisonlee 2010-04-09 00:34:30

+0

然后,问题不在于HTTPS,而是其他问题。我粘贴的代码适合我。 – synic 2010-04-09 00:42:04

+0

仅供说明:它看起来像使用org.apache.http.conn.ssl.SSLSocketFactory,它与javax.net.ssl.SSLSocketFactory不同。那是对的吗? – Dalbergia 2011-08-22 20:09:39