我正在尝试使用.net webservices,我可以建立连接。然而,这是我得到的回应:
[0.0] anyType{NewDataSet=anyType{Table=anyType{Card_ID_PK=2243; PAN=63369610009001016; Expiry_Date[0.0] =15/06/2015; Embossed_Name=IDL IG scheme;
我希望他们拆分并将其显示为表格。我在谷歌搜索,我发现了一些方法,如split(),但只能划分单个字符,我还需要删除字符的方法,并使用它们作为键值对使用。
这是我的肥皂代码:
// TODO Auto-generated method stub
if (DeviceInfo.isSimulator()) {
URL = URL + ";deviceSide=true";
}
SoapObject rpc = new SoapObject(NAMESPACE, METHOD_NAME); //soap object to open the namespace and method name
rpc.addProperty("CH_ID","15");
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.bodyOut = rpc;
System.out.println("envelope response"+envelope.bodyOut.toString());
envelope.dotNet = true;
envelope.encodingStyle = SoapSerializationEnvelope.XSD;
System.out.println("in soap");
envelope.setOutputSoapObject(rpc);
HttpTransport ht = new HttpTransport(URL);
ht.debug = true;
try {
System.out.println("int try");
ht.call(SOAP_ACTION, envelope);
System.out.println("int try");
SoapObject resultProperties = (SoapObject) envelope.getResponse();
System.out.println("IN TRY");
String res=resultProperties.getProperty(1).toString();
System.out.println("Response"+res);
String[] pattern={"{","}","anytype","Table",";"};
String replacement="";
String array=replaceall(res,pattern,replacement);
System.out.println(" array element:"+array[i]);
替换所有方法:
public String replaceall(String str, String[] pattern, String replacement)
{
if(str==null)
{
return "";
}
StringBuffer sb=new StringBuffer();
int index=-1;
String workingSource = str;
for(int i=0;i<pattern.length;i++)
{
while ((index = workingSource.indexOf(pattern[i])) != -1)
{
sb.append(workingSource.substring(0, index));
sb.append(replacement);
sb.append(workingSource.substring(index + pattern[i].length()));
workingSource = sb.toString();
sb.delete(0, sb.length());
}
}
return workingSource;
}
}