Доступ к веб-сервису на основе мыла в Android - PullRequest
1 голос
/ 14 октября 2010

Я звоню в веб-сервис, который основан на мыле в моем приложении для Android. Он возвращает мне ответ XML. Как я могу разобрать это? Я проверил разбор XML, запрашивая URL. Я не понимаю, какой URL мне нужно передать?

Вот код:

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);  request.addProperty("pStrType", type);

request.addProperty("pIntPageNo", PageNo) 

request.addProperty("pIntPageSize", PageSize);

           //Log.v(LOG_TAG," value:="+name);

           //Log.v(LOG_TAG," value:="+pass);
           SoapSerializationEnvelope envelope = 
           new SoapSerializationEnvelope(SoapEnvelope.VER11);
           envelope.dotNet = true;
           envelope.setOutputSoapObject(request);
           AndroidHttpTransport androidHttpTransport = new AndroidHttpTransport(URL);
           try
           {
           androidHttpTransport.call(SOAP_ACTION, envelope);
           SoapObject resultstring = (SoapObject) envelope.bodyIn; 
           Log.v(LOG_TAG," value:="+resultstring);
           String Result=resultstring.toString();

Что делать после этого? Я получаю строку ответа в (resultString).

Ответы [ 3 ]

2 голосов
/ 14 октября 2010

Если вы знаете, как использовать SAX XML Parser, вы можете преобразовать строку в поток байтов и передать ее обработчику.

    String result=resultstring.toString();
    SAXParser saxP = SAXParserFactory.newInstance().newSAXParser();
    ResponseHandler respH = new ResponseHandler();//your implementation
    saxP.parse(new ByteArrayInputStream(result.getBytes()), respH);            

Если вы не знаете SAX-парсер, я бы посоветовал вам сначала изучить это. Это просто.

Надеюсь, это поможет.

0 голосов
/ 21 мая 2012

Попробуйте использовать HttpTransportSE вместо HttpTransport и используйте объект вместо soapObject, попробуйте этот код

  HttpTransportSE http = new HttpTransportSE("http://10.0.2.2:2612/Service1.svc");

  http.call("http://tempuri.org/IService1/GetCoursesInfos", envelope);

  Object result= (Object)envelope.getResponse();
  message=result.toString();

Проверьте этот код и скажите мне В этом посте рассказывается, как использовать мыльный веб-сервис

0 голосов
/ 14 октября 2010

Отказ от ответственности: я собираюсь предложить продукт моей собственной компании, но это хороший совет для этого вопроса.

Вам нужно получить какой-нибудь генератор кода, такой как WSClient ++

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...