Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中访问基于Soap的Web服务_Java_Android_Xml_Parsing - Fatal编程技术网

Java 在Android中访问基于Soap的Web服务

Java 在Android中访问基于Soap的Web服务,java,android,xml,parsing,Java,Android,Xml,Parsing,我正在调用一个在我的Android应用程序中基于soap的Web服务。它将返回XML响应。我如何解析它?我检查了XML解析,并询问URL。我不知道我需要传递哪个URL 代码如下: SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); request.addProperty("pStrType", type); request.addProperty("pIntPageNo", PageNo) request.addPro

我正在调用一个在我的Android应用程序中基于soap的Web服务。它将返回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)中获取响应字符串。

如果您知道如何使用SAX XML解析器,可以将字符串转换为字节流并将其传递给处理程序

String result=resultstring.toString(); SAXParser saxP = SAXParserFactory.newInstance().newSAXParser(); ResponseHandler respH = new ResponseHandler();//your implementation saxP.parse(new ByteArrayInputStream(result.getBytes()), respH); 字符串结果=resultstring.toString(); SAXParser saxP=SAXParserFactory.newInstance().newSAXParser(); ResponseHandler respH=新的ResponseHandler()//您的实现 parse(新的ByteArrayInputStream(result.getBytes()),respH); 如果您不知道SAX解析器,我建议您先了解它。这很简单


希望有帮助

免责声明:我打算推荐我自己公司的产品,但对于这个问题,这是一个很好的建议


您需要获得某种代码生成器,如

尝试使用HttpTransport而不是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();
检查这个代码并告诉我
这将告诉您如何使用SOAPWeb服务。你能告诉我更多吗。。我真的很难用这个。嗨,就像Ramp说的。。您需要使用SAXparser来解析XML。他提供的样本将放在你的下方,你可以使用它。注意,@Akash Kava是根据他的博客开发WSClient++的公司的创始人(“NeuroSpeech的Akash Kava创始人”)。在其他关于该软件的帖子中,他也对这一事实不诚实(声称刚刚“偶然发现”了它)。当你在为自己的产品做广告时,请说明清楚。请在所有你提到自己产品的帖子中披露你的从属关系,否则会有被删除的风险。请阅读中的策略。如果您在XML解析方面有问题,请告诉我