2014-11-04 6 views
0

Я хочу использовать веб-службу C# из приложения для Android. В моем проекте я использую SOAP в запросе на возврат данных с помощью библиотеки kSOAP 2, но когда я делать "вызывать" на моей ...... ASMX, C# бэкэнда, с этим кодомSOAP-запрос в android, анализ ответа JSON

 SoapObject getWeather(String customerNumber) throws Exception { 
    PropertyInfo property = new PropertyInfo(); 
    property.setName("LicenseId"); 
    property.setValue("8BEBFB9F-D9C9-4880-9225-AB50976F2975"); 
    property.setType(String.class); 

    SoapObject request = new SoapObject("http://mobilesuite365.com", 
      "GetCustomers"); 
    request.addProperty(property); 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
      SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); 
    // It seems that it is a .NET Web service because it doesn't work 
    // without next line 


    HttpTransportSE transport = new HttpTransportSE(
      "http://www.mobilesuite365.net/app2/getdata.asmx"); 
    transport.debug = true; 
    transport.call("http://mobilesuite365.com/GetCustomers", envelope); 



    return (SoapObject) envelope.getResponse(); 

Я получаю эту ошибку "XmlPullParserException: Неожиданные лексемы (позиция: TEXT", потому что ответ приходит как JSON, но ksoap может обрабатывать формат xml.

Как получить ответ и обработать информацию от ответа и использовать ее в своем приложении?

Спасибо за помощь

ответ

0

Попробуйте использовать SoapPrimitive в смену в SoapObject и преобразовать его в String типа

String response = ""; 
SoapPrimitive result = (SoapPrimitive) envelope.getResponse(); 
if (result != null) 
    response = result.toString(); 

return response; 

После этого вы должны использовать что-то вроде Gson для разбора JSON вы получили.

Смежные вопросы