2012-06-11 3 views
1

Я звоню в мыло веб-сервис в android, но ответ подходит только anyType {}. Но данные ответа не поступают. он дает только много ответов, как получить данные ответа.call soap webservice в android

private static String SOAP_ACTION = "http://tempuri.org/IService1/FindEmployee"; 
      private static String NAMESPACE = "http://tempuri.org/";  
      private static String METHOD_NAME = "FindEmployee"; 
      private static String URL = "http://192.168.1.9/Employee/Service1.svc?wsdl"; 
      private TextView tv; 

      StringBuilder sb; 

      private XmlSerializer writer; 
      private TextView lblResult1; 


      @Override 
      public void onCreate(Bundle savedInstanceState) { 
       super.onCreate(savedInstanceState); 
       setContentView(R.layout.main); 

       lblResult1 = (TextView) findViewById(R.id.textView1); 
       SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
       request.addAttribute("Empid", "R001"); 

       SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
       envelope.dotNet=true; 
       envelope.setOutputSoapObject(request); 
       HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 
       try { 
        androidHttpTransport.call(SOAP_ACTION, envelope); 
       SoapObject resultsRequestSOAP = (SoapObject) envelope.bodyIn; 
       lblResult1.setText(resultsRequestSOAP.toString()); 
       } catch (Exception e) 
       { 

       System.out.println("Error"+e); 
       } 

      } 
+0

использовать addProperty вместо addAtribute в строке request.addAttribute ("Empid", "R001"); – himanshu

+0

попытайтесь изменить request.addProperty ("Empid", "R001"); вместо request.addAttribute («Empid», «R001»); – Richa

+0

, какой webservice вы используете его java based или .net baesd –

ответ

0
SoapObject request = new SoapObject(NAMESPACE, methodName); 
      request.addProperty("Empid", "R001"); 

      SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
      envelope.setOutputSoapObject(request); 
      AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL); 
      androidHttpTransport 
      .setXmlVersionTag("<?xml version=\"1.0\" encoding=\"UTF-8\"?>"); 
      envelope.dotNet = true; 
      androidHttpTransport.debug = true; 
      androidHttpTransport.call(newSoapAction, envelope); 
      InputStream in = new ByteArrayInputStream(androidHttpTransport.responseDump.getBytes());  
    System.out.println("WS >> Response: "+androidHttpTransport.responseDump); // you will get response overhere  
+0

'AndroidHttpTransport' устарел использовать' HttpTransportSE' –

+0

Я не получаю данные ответа Я просто получаю результат: 06-11 11: 41: 43.687: W/result (450): Kumar

0

просто написать этот lblResult1.setText(resultsRequestSOAP.getProperty(0).toString());

вместо lblResult1.setText(resultsRequestSOAP.toString());

может это поможет вам.

Если он не работает, это означает, что ваш веб-сервис не возвращает никакого ответа, т. Е. Ваш веб-сервис не получает данные из базы данных.

Пожалуйста, напишите мне, если вы хотите больше помочь в этом.