【问题标题】:Access Soap based Web Service in Android在 Android 中访问基于 Soap 的 Web 服务
【发布时间】:2010-10-14 14:33:27
【问题描述】:

我正在调用基于我的 Android 应用程序中的肥皂的网络服务。它正在向我返回 XML 响应。我该如何解析它?我检查了解析它请求 URL 的 XML。我对需要传递哪个 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) 中得到响应字符串。

【问题讨论】:

    标签: java android xml parsing


    【解决方案1】:

    如果您知道如何使用 SAX XML Parser,您可以将 String 转换为字节流并将其传递给您的处理程序。

    字符串结果=resultstring.toString(); SAXParser saxP = SAXParserFactory.newInstance().newSAXParser(); ResponseHandler respH = new ResponseHandler();//你的实现 saxP.parse(new ByteArrayInputStream(result.getBytes()), respH);

    如果您不了解 SAX 解析器,我建议您先学习。很简单。

    希望对您有所帮助。

    【讨论】:

    • HI 斜坡。你能告诉我更多……我真的很难用这个。
    • 嗨,正如 Ramp 所建议的那样......您需要使用 SAXparser 来解析 XML。他提供的样品将放在您的下方,您可以使用它..
    【解决方案2】:

    免责声明:我将推荐我自己公司的产品,但它对这个问题的建议很好。

    您需要获取某种代码生成器,例如 WSClient++

    【讨论】:

    • 请注意,@Akash Kava 是根据他的博客开发 WSClient++ 的公司的创始人(“Akash Kava 的 NeuroSpeech 创始人”)。他在其他关于该软件的帖子中也对这一事实不诚实(声称刚刚“偶然发现”它)。在宣传自己的产品时,请明确说明。
    • 请在所有提及您自己的产品的帖子中披露您的从属关系,否则可能会被删除所有这些帖子。请阅读FAQ中的政策。
    【解决方案3】:

    尝试使用 HttpTransportSE 代替 HttpTransport 并使用 object 代替 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();
    

    检查此代码并告诉我 这个post告诉你如何消费soap web服务

    【讨论】:

    • 如果您的 XML 解析问题告诉我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    • 2016-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多