2 votes

Est-il possible d'appeler WSHTTPBINDING depuis Android ?

private static final String SOAP_ACTION = "http://tempuri.org/IService1/HelloTest";
private static final String METHOD_NAME = "HelloTest";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "";  //blank for privacy
 SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
              //request.addProperty("Celsius", "32");    
                SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
                envelope.dotNet=true;
                envelope.setOutputSoapObject(request);
                HttpTransportSE ht = new HttpTransportSE(URL);                  
         try {
                ht.call(SOAP_ACTION, envelope);  
                final  SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
                final String str = response.toString();
                Toast.makeText(MainActivity.this, str, 5000).show();
                fetch_service.setText(str);     
             }
         catch (Exception e) {
                   e.printStackTrace();  
             }

Je veux appeler ma méthode (Hello Test). Le résultat sera le retour de hello test. Mais cet exemple fonctionne pour la liaison http de base mais pas pour la liaison wshttp.

2voto

Pooja Kansal Points 6049
    Element e = new Element();
        e.setName("To");
        e.setNamespace("http://www.w3.org/2005/08/addressing");
        e.addChild(Node.TEXT,
                "your URL HERE");

        Element e1 = new Element();
        e1.setName("Action");
        e1.setNamespace("http://www.w3.org/2005/08/addressing");
        e1.addChild(Node.TEXT,
                "http://tempuri.org/IService1/HelloTest");

    request.addProperty("Celsius", "32");    

    // use VER12 instead of VER11
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER12);

    envelope.dotNet=true;

    // add HederOut to envelope
    envelope.headerOut = new Element[] { e, e1 };

    envelope.setOutputSoapObject(request);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X