gaaloul Posté(e) 17 mai 2011 Share Posté(e) 17 mai 2011 Bonjour, Je développe une application sous android 1.5 qui consiste à appelé un service web. J'ai crée le service web et je l'ai testé avec soapUI il marche correctement. Mon problème c'est dans l'application quand je debug il ne se passe rien quand je click sur le bouton qui appel le service, la console de debug reste bloqué sur ce message : Attempting to connect debugger to 'com.kalydia' on port xxxx car à chaque fois il change de numéro du port. Merci pour vos réflexions. Vous trouverez ci-joint l'imprime écran du debug Voila mon code il est très simple : public class WS_SAP_activity extends Activity implements View.OnClickListener { private static final String NAMESPACE = "urn:sap-com:document:sap:soap:functions:mc-style"; private static final String URL = "http://sap1.kalydia.local:8000/sap/bc/srt/rfc/sap/zwsuser/800/zwsuser/zwsuser"; private Button mButton; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mButton =(Button) findViewById(R.id.button1); setContentView(R.layout.main); mButton.setOnClickListener(this); } //public Button.OnClickListener btTestListener = new Button.OnClickListener() { // b.setOnClickListener(new Button.OnClickListener() { @Override public void onClick(View v) { if (v == mButton) { try { // Create SOAP request //SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); final TextView tf= (TextView) findViewById(R.id.editText2); final TextView tf1 =(TextView) findViewById(R.id.editText2); SoapObject request = new SoapObject("urn:sap-com:document:sap:rfc:functions","Zmafonctionsws2"); request.addProperty("Nom", tf); SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.setOutputSoapObject(request); HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); androidHttpTransport.call(null, envelope); // Get response from envelope // Object result = envelope.getResponse(); SoapObject body = (SoapObject)envelope.bodyIn; String result = (String)body.getProperty("WiCount").toString(); // Display result tf1.setText(result); Toast.makeText(WS_SAP_activity.this, result.toString(),50000).show(); } catch (Exception e) { e.printStackTrace(); } } } } Lien vers le commentaire Partager sur d’autres sites More sharing options...
gaaloul Posté(e) 17 mai 2011 Auteur Share Posté(e) 17 mai 2011 j'ai résolu Lien vers le commentaire Partager sur d’autres sites More sharing options...
guigs06 Posté(e) 3 juin 2011 Share Posté(e) 3 juin 2011 Bonjour, Comment l'avez-vous résolu ? Je dois aussi faire appel à un soap service et parser les données dans mon application. Du coup j'envoie l'enveloppe xml grace à une méthode : public static String callWebServiceMethod(String login){ HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost("monUrl/monService.php"); String webServiceXml = ""; String response = ""; try { webServiceXml += "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n"; webServiceXml += "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:urn=\"urn:monUrn\">\n"; webServiceXml += "<soapenv:Header/>\n"; webServiceXml += "<soapenv:Body>\n"; webServiceXml += "<urn:monService>\n"; webServiceXml += "<login>blabla</login>\n"; webServiceXml += "</urn:monService>\n"; webServiceXml += "</soapenv:Body>\n"; webServiceXml += "</soapenv:Envelope>\n"; httpPost.setHeader("Authorization","monAutorization"); httpPost.setHeader("content-type","text/xml; charset=ISO-8859-1"); httpPost.setHeader("SOAPAction","urn:monFichierService#monService"); httpPost.setEntity(new StringEntity(webServiceXml)); HttpResponse httpResponse = httpClient.execute(httpPost); response = EntityUtils.toString(httpResponse.getEntity()); } catch(Exception ex) { Log.i("error", ex.getMessage()); System.out.println("ERROR" + ex.getMessage()); } return response; } Je reçois bien une enveloppe xml en retour en faisant : System.out.println(callWebServiceMethod("monLogin")) Mais je ne sais pas comment la parser... (j'ai fait des recherche sur SAXParser qui paraît bien... mais je ne sais pas trop comment utiliser ce string xml pour parser..) Est-ce que la méthode que j'utilise est la bonne ? Ou faut-il que je m'y prenne autrement ? EDIT : J'ai fait un : try { SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser sp = spf.newSAXParser(); XMLReader xr = sp.getXMLReader(); xr.setContentHandler(this); xr.parse(callWebServiceMethod("test")); } catch (Exception e) { System.out.println("XML Pasing Exception = " + e); } L'enveloppe xml s'affiche bien dans mon println, mais il me met : XML Pasing Exception = java.io.IOException: Couldn't open ... (blabla mon enveloppe xml) Quelqu'un sait d'où cela peux venir ? merci :) EDIT : sur un forum stackOverflow ils disent que SAXParser parse uniquement une URI ou url et pas une enveloppe dans un string... comment puis-je faire du coup ? Merci.. EDIT 3 : Bon, apparemment ça marche en faisant : InputSource source = new InputSource(new StringReader(callWebServiceMethod("test"))); xr.parse(source); Merci quand même... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.