web-dev-qa-db-fra.com

Android HttpClient et HTTPS

Je suis nouveau dans la mise en œuvre de connexions HTTPS dans Android. Essentiellement, j'essaie de me connecter à un serveur en utilisant org.Apache.http.client.HttpClient. Je pense qu'à un moment donné, je devrai accéder au magasin de clés de l'application afin d'autoriser mon client avec une clé privée. Mais, pour le moment, j'essaie juste de me connecter et de voir ce qui se passe; Je reçois toujours une erreur HTTP/1.1 400 Bad Request.

Je n'arrive pas à en faire la tête ou la queue malgré de nombreux exemples (aucun 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 des conseils. Merci!

31
harrisonlee

Cela devrait vous aider à démarrer. J'utilise essentiellement 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);
16
synic