OVH Community, votre nouvel espace communautaire.

Soapi et Android


dangherve
01/11/2011, 23h20
Re bonjour

Je vais ajouter ci dessous le code que j'ai actuellement vous verrez peut être plus facilement ce que je fais de travers.

Code:
import android.app.Activity;
import android.widget.TextView;
import android.os.Bundle;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import java.io.IOException;
import org.xmlpull.v1.XmlPullParserException;

public class appel extends Activity{

    private static final String	METHOD_NAME = "telephonyClick2CallDo";
    private static final String	NAMESPACE  = "http://soapi.ovh.com/manager";

//j'ai essayé les 3
    private static final String	URL	="http://soapi.ovh.com/manager";
//"https://www.ovh.com/soapi/soapi-dlw-1.24.wsdl";
//    "https://www.ovh.com/soapi/soapi-re-1.24.wsdl";

    private static SoapObject connectToSoap ( SoapObject request, String SOAP_ACTION ) throws Exception {
		
	//Toutes les donnees demandees sont mises dans une enveloppe.
	SoapSerializationEnvelope envelope = new SoapSerializationEnvelope (SoapEnvelope.VER11);

	//Preparation de la requete
	envelope.setOutputSoapObject (request);
	HttpTransportSE androidHttpTransport = new HttpTransportSE (URL);

	//Ceci est optionnel, on l'utilise pour savoir si nous voulons ou non utiliser 
	//un paquet "sniffer" pour verifier le message original (androidHttpTransport.requestDump)
	//androidHttpTransport.debug = true; 

	//Envoi de la requete
	androidHttpTransport.call (SOAP_ACTION, envelope);

	//Obtention du resultat
	SoapObject soapResult = (SoapObject) envelope.getResponse();

	return soapResult;
    }


    public SoapObject telephonyClick2CallDo (String login, String password, 
					 String calling, String called, String number)
	throws Exception {

	String SOAP_ACTION = "telephonyClick2CallDo";
	String METHOD_NAME = "telephonyClick2CallDo";

	
	// Creation de la requete SOAP
	SoapObject request = new SoapObject (NAMESPACE, METHOD_NAME);

	//ajout des parametre de la methode que l'on veut appeler
	request.addProperty("login",login);
	request.addProperty("password",password);
	request.addProperty("calling",calling);
	request.addProperty("called",called);
	request.addProperty("number",number);
	request.addProperty("language", "fr");
	request.addProperty("multisession", false);

	return connectToSoap(request, SOAP_ACTION);
    }


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

	TextView mytexte =new TextView(this);
	TextView mytexte2 =new TextView(this);
      
	mytexte2.setText("debut");
		
	setContentView(mytexte2);

	try{

	    telephonyClick2CallDo("#LOGIN","#pass", "#NUM1","#NUM2","#numéroDeLaLigne");
	   			
	    mytexte.setText("FIN");

	}catch (IOException e){

	    mytexte.setText("erreur IO "+e.getMessage());
	
	    
	}catch(XmlPullParserException e){
	    mytexte.setText("erreur xml "+e.getMessage());


	}catch(Exception e){
	mytexte.setText("erreur  "+e.getMessage());

	}
	
	setContentView(mytexte);

    }
    
}
Merci d'avance pour votre aide

Hervé

dangherve
28/10/2011, 04h04
Bonjour

Je dois utiliser quelques méthodes SOAPI sous android.

J'ai essayé d'utiliser Ksoap2 pour android (http://code.google.com/p/ksoap2-android/) mais lors de l’exécution j'obitens une erreur il me retourne l' erreur: expected: START_TAG... Avez vous une idée d'ou proviens ce problème.

Sinon j'ai aussi essayé avec axis2 j'ai reussi à génerer deux fichier java (LanagerServiceCallBackHandler.java et ManagerServiceStub.java) mais je n'ai pas encore réussi à comprendre comment les utiliser. J'ai essayé dans un programme java tout simple mais j'obtiens lors de la compilation que le system manque de mémore (OutOfMemoryError). J'ai trouvé sur internet qu'il fallait compiler avec les options "-J-Xms1024l -J-Xmx1024m" mais le compilateur me dit alors que le package org.apache.axis2.databinding n'existe pas. Pouvez vous m'éclaire sur le fonctionement de soapi avec axis2 ou me dire ce que je pourrai oublier de faire?

Si j'ai oublié de préciser quelque chose signaler le moi que je puisse compléter l'information

Merci d'avance pour votre aide

Hervé