2013-08-19 4 views
2

Привет, поэтому я долго искал google и, но, похоже, не имел убедительного примера для этого. Я работаю с webservice в последние несколько дней с андроидом, и я могу успешно передать параметры с android и уничтожить его с помощью ksoap без проблем. Но теперь мне нужно передать массив в веб-сервис. Так Heres мой пример веб-службы:Передача строкового массива на веб-службу C# (Android Ksoap2)

[WebMethod] 
public string Sample(string[] logs) 
{ 
    return array[0]; 
} 

И это XML, что мне нужно сгенерировать:

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <Sample xmlns="http://MTKAndroidService.org/"> 
     <array> 
     <string>string</string> 
     <string>string</string> 
     </array> 
    </Sample> 
    </soap:Body> 
</soap:Envelope> 

Я застрял с этим на некоторое время теперь, и надеюсь, что кто-то может помочь мне.

+1

насчет просто передавая строку с разделителями-запятыми, затем с помощью 'строку [] массив = String.split (",", input); ' – Jonesopolis

+0

благодарим вас за ответ. Да, я уже отважился на этот вариант, но строка была бы слишком длинной, если бы я сделал это именно так. Мы говорим о 100 значениях строк здесь, поэтому я не думаю, что лучше всего использовать эту технику – TheProvost

ответ

4

Наконец Понял .... для тех, кто застрял на это также плохо после моего ответа

public String Sample() 
    { 
     String SOAP_ACTION = "http://MTKAndroidService.org/Sample"; 
     String METHOD_NAME = "Sample"; 
//  URL = "http://10.0.2.2:49923/Service1.asmx"; // to be adjusted to the URL above once this code is added into WebService; 
     String IP_LIST=""; 
     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 
     List<String> logs = new ArrayList<String>(); 
     logs.add("hello"); 
     logs.add("world"); 
     SoapObject soapLogs = new SoapObject(NAMESPACE, "logs"); 
     for (String i : logs){ 
      soapLogs.addProperty("string", i); 
     } 
     request.addSoapObject(soapLogs); 

     SoapSerializationEnvelope IPenvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     IPenvelope.dotNet = true; 
     IPenvelope.setOutputSoapObject(request); 
     HttpTransportSE androidHttpTransport = new HttpTransportSE(URL); 

      try 
      { 
       androidHttpTransport.call(SOAP_ACTION, IPenvelope); 
       SoapPrimitive response = (SoapPrimitive)IPenvelope.getResponse(); 
       Log.i("myApp", response.toString()); 
       IP_LIST= response.toString(); 
      } 
      catch (Exception e) 
      { 
       e.printStackTrace(); 
      } 
      return IP_LIST; 
    } 
+0

@TheProvots: pls. обратитесь к этой ссылке [http://stackoverflow.com/questions/19198017/pass-arraylist-data-into-soap-web-service-in-android] http://stackoverflow.com/questions/19198017/pass-arraylist- data-in-soap-web-service-in-android) Есть ли у вас какие-либо идеи, как я могу отправить этот тип данных в мыльный сервис –

+0

Привет, извините, долгое время с тех пор, как я вошел ... в любом случае у вас все еще проблема с этим? я не могу получить доступ к вашей странице – TheProvost

+0

: обратитесь к ссылке [http://stackoverflow.com/questions/19353244/issue-in-passing-json-format-in-soap-service-android](http://stackoverflow.com/questions/19353244/issue-in-прохождения-json-format-in-soap-service-android) как я могу передать эти данные? –