如何在android中解析Soap信封对象中的数据
我想解析来自给定SoapObject的数据,并获得反馈、Infraname和问题的所有值请告诉我哪里做错了,我无法获取值在代码中尝试这样做,您可以解析KSoap中的数据如何在android中解析Soap信封对象中的数据,android,soap,Android,Soap,我想解析来自给定SoapObject的数据,并获得反馈、Infraname和问题的所有值请告诉我哪里做错了,我无法获取值在代码中尝试这样做,您可以解析KSoap中的数据 getdata(stringsearchvalue)-在do背景中调用此方法 anyType{InfraWiseDetails=anyType{VisitInfraDetails=anyType{Feedback=Status OK; InfraName=Tables and Chairs; Problem=null; Reso
getdata(stringsearchvalue)
-在do背景中调用此方法
anyType{InfraWiseDetails=anyType{VisitInfraDetails=anyType{Feedback=Status OK; InfraName=Tables and Chairs; Problem=null; ResolutionStatus=false; Status=true; };
VisitInfraDetails=anyType{Feedback=Water Quality very poor; InfraName=Water; Problem=Rust in Water; ResolutionStatus=false; Status=false; }; }; VisitMasterId=1; }
public void getdata(字符串SearchValue)
{
//创建请求
SoapObject请求=新的SoapObject(名称空间2,方法\名称2);
PropertyInfo pi4=新的PropertyInfo();
pi4.设置名称(“城市”);
setValue(SearchValue);//获取要发送到Web服务的字符串
pi4.setType(String.class);
请求。添加属性(pi4);
//创建信封
SoapSerializationEnvelope=新的SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
//设置输出SOAP对象
envelope.setOutputSoapObject(请求);
//创建HTTP调用对象
HttpTransportSE androidHttpTransport=新的HttpTransportSE(URL2);
试一试{
//发票web服务
调用(SOAP_ACTION2,信封);
//得到回应
SoapPrimitive响应=(SoapPrimitive)信封.getResponse();
//将字符串转换为数组列表
ArrayList servicityName_arr=new ArrayList();
if((response.toString())包含(“{”))
{
SoapObject rep=(SoapObject)envelope.bodyIn;
JSONArray jr=新的JSONArray(rep.getpropertyastring(0));
对于(int i=0;i
过了很长一段时间,我正在查看ksoap2代码。请尝试以下操作:
public void getdata(String SearchValue)
{
// Create request
SoapObject request = new SoapObject(NAMESPACE2, METHOD_NAME2);
PropertyInfo pi4 = new PropertyInfo();
pi4.setName("City");
pi4.setValue(SearchValue);// get the string that is to be sent to the webservice
pi4.setType(String.class);
request.addProperty(pi4);
// Create envelope
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
// Set output SOAP object
envelope.setOutputSoapObject(request);
// Create HTTP call object
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL2);
try {
// Invole web service
androidHttpTransport.call(SOAP_ACTION2, envelope);
// Get the response
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
//Converting string to Array list
ArrayList<String> Servciecityname_arr= new ArrayList<String>();
if ((response.toString()).contains("{"))
{
SoapObject rep = (SoapObject) envelope.bodyIn;
JSONArray jr = new JSONArray(rep.getPropertyAsString(0));
for (int i = 0; i < jr.length(); i++) {
JSONObject jb = (JSONObject) jr.get(i);
Cityname = jb.getString("CityName123");
Servciecityname_arr.add(Cityname);
}
CITYNAME = new String[Servciecityname_arr.size()];
CITYNAME = Servciecityname_arr.toArray(CITYNAME);
}
else
{
Status_Response = response.toString();
}
} catch (Exception e) {
Log.i(TAG2, "Error in catch");
e.printStackTrace();
}
}
SoapObject结果=(SoapObject)信封.getResponse();
SoapObject根=(SoapObject)结果.getProperty(0);
SoapObject s_deals=(SoapObject)root.getProperty(“InfraWiseDetails”);
对于(int i=0;i
试试这个:SoapObject result=(SoapObject)envelope.bodyIn;让我知道。@sanatshukla SoapObject s_deals_1=(SoapObject)s_deals.getProperty(“VisitInfraDetails”);for(int i=0;ipublic void getdata(String SearchValue)
{
// Create request
SoapObject request = new SoapObject(NAMESPACE2, METHOD_NAME2);
PropertyInfo pi4 = new PropertyInfo();
pi4.setName("City");
pi4.setValue(SearchValue);// get the string that is to be sent to the webservice
pi4.setType(String.class);
request.addProperty(pi4);
// Create envelope
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
// Set output SOAP object
envelope.setOutputSoapObject(request);
// Create HTTP call object
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL2);
try {
// Invole web service
androidHttpTransport.call(SOAP_ACTION2, envelope);
// Get the response
SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
//Converting string to Array list
ArrayList<String> Servciecityname_arr= new ArrayList<String>();
if ((response.toString()).contains("{"))
{
SoapObject rep = (SoapObject) envelope.bodyIn;
JSONArray jr = new JSONArray(rep.getPropertyAsString(0));
for (int i = 0; i < jr.length(); i++) {
JSONObject jb = (JSONObject) jr.get(i);
Cityname = jb.getString("CityName123");
Servciecityname_arr.add(Cityname);
}
CITYNAME = new String[Servciecityname_arr.size()];
CITYNAME = Servciecityname_arr.toArray(CITYNAME);
}
else
{
Status_Response = response.toString();
}
} catch (Exception e) {
Log.i(TAG2, "Error in catch");
e.printStackTrace();
}
}
SoapObject result = (SoapObject) envelope.getResponse();
SoapObject root = (SoapObject) result.getProperty(0);
SoapObject s_deals = (SoapObject) root.getProperty("InfraWiseDetails");
for (int i = 0; i < s_deals.getPropertyCount(); i++) {
SoapObject s_deals_1 = (SoapObject) s_deals.getProperty(i);
String x = s_deals_1.getProperty("Feedback").toString();
String y = s_deals_1.getProperty("InfraName").toString();
String z = s_deals_1.getProperty("Problem").toString();
}