2010-04-08 7 views
31

Je suis nouveau à l'implémentation des connexions HTTPS dans Android. Essentiellement, j'essaie de me connecter à un serveur en utilisant le org.apache.http.client.HttpClient. Je crois qu'à un moment donné, j'aurai besoin d'accéder au keystore de l'application pour autoriser mon client avec une clé privée. Mais, pour l'instant, j'essaie juste de me connecter et de voir ce qui se passe; Je continue d'obtenir une erreur HTTP/1.1 400 Bad Request.Android HttpClient et HTTPS

Je n'arrive pas à faire la tête ou la queue malgré de nombreux exemples (aucun d'entre eux ne semble fonctionner pour moi). Mon code ressemble à ceci (la constante BODY est 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()); 

} 

Donc, assez simple. Faites-moi savoir si quelqu'un a un conseil. Merci!

Répondre

16

Cela devrait vous aider à démarrer. J'utilise fondamentalement la même chose, sauf avec 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

Merci pour votre réponse rapide. J'ai effectivement essayé une approche similaire plus tôt sans aucune chance; même erreur de requête incorrecte. – harrisonlee

+0

Ensuite, le problème n'est pas avec HTTPS, c'est autre chose. Le code que j'ai collé fonctionne pour moi. – synic

+0

Juste pour clarifier: il semble que vous utilisiez org.apache.http.conn.ssl.SSLSocketFactory, ce qui n'est pas la même chose que javax.net.ssl.SSLSocketFactory. Est-ce exact? – Dalbergia

Questions connexes