Se connecter en HTTPS à partir de Android de REPOS et de service web SOAP

Je suis confronté à un problème pour appeler https à partir d'Android. Peut-on s'il vous plaît aider avec les étapes pour vous connecter à un serveur https.

J'ai essayé de vous connecter à google avec https et sa fonctionne bien, mais lorsque j'essaie de me connecter à mon serveur local, je suis confrontée à des problèmes.

  1. voulez le connecter à un service web RESTful avec https
  2. souhaitez connecter un SAVON services web développés à l'aide de JAX-WS avec le protocole https.

  3. Code pour se connecter avec RESTFul

    HostnameVerifier hostnameVerifier = org.apache.http.conn.ssl.SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER;
    
    DefaultHttpClient client = new DefaultHttpClient();
    
    SchemeRegistry registry = new SchemeRegistry();
    SSLSocketFactory socketFactory = SSLSocketFactory.getSocketFactory();
    socketFactory.setHostnameVerifier((X509HostnameVerifier) hostnameVerifier);
    registry.register(new Scheme("https", socketFactory, 443));
    SingleClientConnManager mgr = new SingleClientConnManager(client.getParams(), registry);
    DefaultHttpClient httpClient = new DefaultHttpClient(mgr, client.getParams());
    
    //Set verifier     
    HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
    
    //Example send http request
     //final String url = "https://encrypted.google.com/";
     final String url = "https://ipaddress:8181/RESTTest/cars";
     HttpPost httpPost = new HttpPost(url);
      try{
         HttpResponse response = httpClient.execute(httpPost);
         System.out.println(response);
     }catch(Exception e){
         e.printStackTrace();
     }

    son travail d'amende pour google, mais ne fonctionne pas pour mon serveur et qu'il donne

    javax.net.le protocole ssl.SSLException: Pas de confiance certificat de serveur

  4. Code pour se connecter avec du SAVON:

    public String getString(final String methodName, Map<String, Object>        params)        throws     Exception {
    HttpTransportSE httpsTransportSE = new         HttpTransportSE("https://ipaddress:8181/BankingWS/banking?wsdl");
    
    try {
        SoapObject request = new SoapObject("https://test/",
                methodName);
        if(params != null && params.size() > 0){
            Set<String> keys = params.keySet();
            Iterator<String> iterator = keys.iterator();
            while(iterator.hasNext()){
                String key = iterator.next();
                request.addProperty(key, params.get(key));
                key = null;
            }
        }
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                SoapEnvelope.VER11);
        envelope.setOutputSoapObject(request);
    
        TrustManagerManipulator.allowAllSSL();
        httpsTransportSE.call(methodName, envelope);
    
        SoapPrimitive sp = (SoapPrimitive) envelope.getResponse();
    
        return sp.toString();
    } catch (Exception exception) {
        System.out.println(exception.toString());
        throw exception;
    }
    }

    Dans le code ci-dessus à l'aide de la TrustManagerManipulator à partir du lien suivant:
    http://abhinavasblog.blogspot.com/2011/07/allow-untrusted-certificate-for-https.html

C'est aussi ne fonctionne pas et quand je vérifie le code de la réponse qu'il donne

SoapFault - faultcode: 'S:Client' faultstring: 'Cannot find dispatch method for {test.WSEndPointPort}authenticate' faultactor: 'null' detail: null

S'il vous plaît aider pour résoudre ce problème, car je ne suis pas en mesure d'appeler https à partir d'Android par n'importe quel moyen 🙁

Je vous remercie beaucoup pour votre temps et vos efforts.

Merci,
Ishan

InformationsquelleAutor Ishan | 2011-12-09