Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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
Android SOAPWeb服务接收的xml中为什么没有结束标记?_Android_Xml_Soap - Fatal编程技术网

Android SOAPWeb服务接收的xml中为什么没有结束标记?

Android SOAPWeb服务接收的xml中为什么没有结束标记?,android,xml,soap,Android,Xml,Soap,我将Ksoap2库用于Soap web服务,因为在android中没有直接的方法可以做到这一点。使用该选项后,我成功地从服务器获得回复。它具有起始标记“”,xml响应也应以该标记结束。但我没有得到结束标签。这是我得到的 <NewDataSet> <Table> <AgentHangup>true</AgentHangup> <CallDetailId>140120151439395690100016</CallDetailId&g

我将Ksoap2库用于Soap web服务,因为在android中没有直接的方法可以做到这一点。使用该选项后,我成功地从服务器获得回复。它具有起始标记“”,xml响应也应以该标记结束。但我没有得到结束标签。这是我得到的

<NewDataSet>
<Table>
<AgentHangup>true</AgentHangup>
<CallDetailId>140120151439395690100016</CallDetailId>
<CallID>3171B65415000200</CallID>
<CorrelatorId />
<CallDuration>9</CallDuration>
<EncryptedCall>false</EncryptedCall>
<CallDate>2015/01/14 14:39:39</CallDate>
<CalledBy>9010</CalledBy>
<CalledTo>9000</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>
<FirstName>fawad</FirstName>
<LastName>khan</LastName>
<Comments />
<FlagID>1</FlagID>
<FlagImage>1.gif</FlagImage>
<AF>C:\Program Files (x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRecordAudio\Repository\from\150114\0004\32_14012015 143939599_0016_9010.wav</AF>
<CallDirection>O</CallDirection>
<FLAGTEXT>Training required</FLAGTEXT>
<Archive>false</Archive>
<ExtensionValue>9010</ExtensionValue>
<GraphValue />
</Table>
<Table>
<AgentHangup>true</AgentHangup>
<CallDetailId>140120151439382290010016</CallDetailId>
<CallID>3171B65415000200</CallID>
<CorrelatorId />
<CallDuration>11</CallDuration>
<EncryptedCall>false</EncryptedCall>
<CallDate>2015/01/14 14:39:38</CallDate>
<CalledBy>9010</CalledBy>
<CalledTo>9001</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>
<FirstName>Jack</FirstName>
<LastName>Rayan</LastName>
<Comments />
<FlagID>1</FlagID>
<FlagImage>1.gif</FlagImage>
<AF>C:\Program Files (x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRecordAudio\Repository\from\150114\0002\30_14012015 143938287_0016_9001.wav</AF>
<CallDirection>I</CallDirection>
<FLAGTEXT>Training required</FLAGTEXT>
<Archive>false</Archive>
<ExtensionValue>9001</ExtensionValue>
<GraphValue />
</Table>
<Table>
<AgentHangup>false</AgentHangup>
<CallDetailId>140120151439384490000016</CallDetailId>
<CallID>2A71B65414000200</CallID>
<CorrelatorId />
<CallDuration>11</CallDuration>
<EncryptedCall>false</EncryptedCall>
<CallDate>2015/01/14 14:39:38</CallDate>
<CalledBy>9010</CalledBy>
<CalledTo>9000</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>
<FirstName>adnan</FirstName>
<LastName>akhtar</LastName>
<Comments />
<FlagID>1</FlagID>
<FlagImage>1.gif</FlagImage>
<AF>C:\Program Files (x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRecordAudio\Repository\from\150114\0001\31_14012015 143938537_0016_9000.wav</AF>
<CallDirection>I</CallDirection>
<FLAGTEXT>Training required</FLAGTEXT>
<Archive>false</Archive>
<ExtensionValue>9000</ExtensionValue>
<GraphValue />
</Table>
<Table>
<AgentHangup>false</AgentHangup>
<CallDetailId>140120151439354290010015</CallDetailId>
<CallID>3171B65415000200</CallID>
<CorrelatorId />
<CallDuration>1</CallDuration>
<EncryptedCall>false</EncryptedCall>
<CallDate>2015/01/14 14:39:35</CallDate>
<CalledBy>9010</CalledBy>
<CalledTo>9001</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>
<FirstName>Jack</FirstName>
<LastName>Rayan</LastName>
<Comments />
<FlagID>1</FlagID>
<FlagImage>1.gif</FlagImage>
<AF>C:\Program Files (x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRecordAudio\Repository\from\150114\0002\28_14012015 143935505_0015_9001.wav</AF>
<CallDirection>I</CallDirection>
<FLAGTEXT>Training required</FLAGTEXT>
<Archive>false</Archive>
<ExtensionValue>9001</ExtensionValue>
<GraphValue />
</Table>
<Table>
<AgentHangup>true</AgentHangup>
<CallDetailId>140120151439355890100015</CallDetailId>
<CallID>3171B65415000200</CallID>
<CorrelatorId />
<CallDuration>2</CallDuration>
<EncryptedCall>false</EncryptedCall>
<CallDate>2015/01/14 14:39:35</CallDate>
<CalledBy>9010</CalledBy>
<CalledTo>9001</CalledTo>
<IsExternal>false</IsExternal>
<RecorderType>PRIMARY</RecorderType>

符合事实的
140120151439395690100016
3171B65415000200
9
错误的
2015/01/14 14:39:39
9010
9000
错误的
主要的,重要的
法瓦德
可汗
1.
1.gif
C:\Program Files(x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRecordAudio\Repository\from\150114\0004\32\U 14012015 143939599\U 0016\U 9010.wav
O
所需培训
错误的
9010
符合事实的
140120151439382290010016
3171B65415000200
11
错误的
2015/01/14 14:39:38
9010
9001
错误的
主要的,重要的
杰克
拉扬
1.
1.gif
C:\Program Files(x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRecordAudio\Repository\from\150114\0002\30\U 14012015 143938287\U 0016\U 9001.wav
我
所需培训
错误的
9001
错误的
140120151439384490000016
2A71B65414000200
11
错误的
2015/01/14 14:39:38
9010
9000
错误的
主要的,重要的
阿德南
阿赫塔
1.
1.gif
C:\Program Files(x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRecordAudio\Repository\from\150114\0001\31\U 14012015 143938537\U 0016\U 9000.wav
我
所需培训
错误的
9000
错误的
140120151439354290010015
3171B65415000200
1.
错误的
2015/01/14 14:39:35
9010
9001
错误的
主要的,重要的
杰克
拉扬
1.
1.gif
C:\Program Files(x86)\Alcatel-Lucent\OmniPCXRecord Suite\OmniPCXRecord\OmniPCXRecordAudio\Repository\from\150114\0002\28\U 14012015 143935505\U 0015\U 9001.wav
我
所需培训
错误的
9001
符合事实的
140120151439355890100015
3171B65415000200
2.
错误的
2015/01/14 14:39:35
9010
9001
错误的
主要的,重要的
请看,在开始时没有这样的结束标记(在本例中为NewDataSet)

我使用以下类来获得响应:

    public class SoapRequests {

    private static final boolean DEBUG_SOAP_REQUEST_RESPONSE = true;
    private static final String MAIN_REQUEST_URL = "http://192.168.2.152/OmniPCXRecord/recordservice.asmx";
    private static final String NAMESPACE = "http://tempuri.org/";
    private static final String SOAP_ACTION = "http://tempuri.org/";
    private static String SESSION_ID;
    public static String Toaster=null ;

    private final void testHttpResponse(HttpTransportSE ht) {
        ht.debug = DEBUG_SOAP_REQUEST_RESPONSE;
        if (DEBUG_SOAP_REQUEST_RESPONSE) {
            Log.v("SOAP RETURN", "Request XML:\n" + ht.requestDump);
            Log.v("SOAP RETURN", "\n\n\nResponse XML:\n" + ht.responseDump)
            ;
            Toaster=ht.responseDump;
        }
    }

    public String getData(String fValue) {
        String data = null;
        String methodname = "SearchCalls";

        SoapObject request = new SoapObject(NAMESPACE, methodname);
        //3
        request.addProperty("username", "admin");
        //
        request.addProperty("password", "admin");

        //5
        request.addProperty("FirstNameCriteria", "");
        //6
        request.addProperty("FirstName", "");
        //7
        request.addProperty("LastNameCriteria", "");
        //8
        request.addProperty("LastName", "");
        //9
        request.addProperty("GroupSearchOption", "");
        //10
        request.addProperty("GroupName", "");
        //11
        request.addProperty("EncryptedCallsCriteria", "");
        //12
        request.addProperty("AssociatedAgentCriteria", "");
        //13
        request.addProperty("CalledByCriteria", "");
        //14
        request.addProperty("CalledBy", "");
        //15
        request.addProperty("CalledToCriteria", "");
        //16
        request.addProperty("CalledTo", "");
        //17
        request.addProperty("CalledDateSearchCriteria", "Past_N_days");
        //18
        request.addProperty("NumberOfDays", "1");
        //19
        request.addProperty("StartDate", "");
        //20
       //I have round about 100 of parameters to send and they are generated successfully
       //i am sharing here few just for example
        Log.v("Final Property is",request.toString());




        SoapSerializationEnvelope envelope = getSoapSerializationEnvelope(request);

        HttpTransportSE ht = getHttpTransportSE();
        try {
            ht.call(SOAP_ACTION + methodname, envelope);
            testHttpResponse(ht);
            SoapPrimitive resultsString = (SoapPrimitive)envelope.getResponse();

            //   List<HeaderProperty> COOKIE_HEADER = (List<HeaderProperty>) ht.getServiceConnection().getResponseProperties();

//            for (int i = 0; i < COOKIE_HEADER.size(); i++) {
//                String key = COOKIE_HEADER.get(i).getKey();
//                String value = COOKIE_HEADER.get(i).getValue();
//
//                if (key != null && key.equalsIgnoreCase("set-cookie")) {
//                    SoapRequests.SESSION_ID = value.trim();
//                    Log.v("SOAP RETURNCookiee", "Cookie :" + SoapRequests.SESSION_ID+key);
//                   // Log.v("SOAP RETURNCookiee", "Cookie :" + SoapRequests.SESSION_ID);
//                    break;
//                }
//            }
            data = resultsString.toString();

        } catch (SocketTimeoutException t) {
            t.printStackTrace();
        } catch (IOException i) {
            i.printStackTrace();
        } catch (Exception q) {
            q.printStackTrace();
        }
        return data;
    }

    private final SoapSerializationEnvelope getSoapSerializationEnvelope(SoapObject request) {
        SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
        //change from orgnl
        //envelope.dotNet = true;
        envelope.dotNet = true;
        envelope.implicitTypes = true;
        envelope.setAddAdornments(false);
        envelope.setOutputSoapObject(request);
        return envelope;
    }

    private final HttpTransportSE getHttpTransportSE() {
        HttpTransportSE ht = new HttpTransportSE(Proxy.NO_PROXY,MAIN_REQUEST_URL,6000);
        ht.debug = true;
        ht.setXmlVersionTag("<?xml version=\"1.0\" encoding= \"UTF-8\" ?>");
        return ht;
    }

}
公共类SoapRequests{
私有静态最终布尔调试\u SOAP\u请求\u响应=true;
私有静态最终字符串MAIN\u请求\u URL=”http://192.168.2.152/OmniPCXRecord/recordservice.asmx";
私有静态最终字符串命名空间=”http://tempuri.org/";
私有静态最终字符串SOAP_ACTION=”http://tempuri.org/";
私有静态字符串会话\u ID;
公共静态字符串Toaster=null;
专用最终无效测试HttpResponse(HttpTransportSE-ht){
ht.debug=debug\u SOAP\u REQUEST\u RESPONSE;
if(调试\ SOAP \请求\响应){
Log.v(“SOAP返回”、“请求XML:\n”+ht.requestDump);
Log.v(“SOAP返回”,“\n\n\n响应XML:\n”+ht.responseDump)
;
烤面包机=ht.responseDump;
}
}
公共字符串getData(字符串fValue){
字符串数据=null;
String methodname=“SearchCalls”;
SoapObject请求=新的SoapObject(名称空间、方法名称);
//3
addProperty(“用户名”、“管理员”);
//
addProperty(“密码”、“管理员”);
//5
request.addProperty(“FirstNameCriteria”和“”);
//6
request.addProperty(“FirstName”和“”);
//7
request.addProperty(“LastNameCriteria”和“”);
//8
request.addProperty(“LastName”和“”);
//9
request.addProperty(“GroupSearchOption”和“”);
//10
request.addProperty(“GroupName”和“”);
//11
addProperty(“EncryptedCallsCriteria”,”);
//12
addProperty(“AssociatedAgentCriteria”和“”);
//13
addProperty(“CalledByCriteria”,即“”);
//14
addProperty(“CalledBy”,“CalledBy”);
//15
addProperty(“CalledToCriteria”,“CalledToCriteria”);
//16
addProperty(“CalledTo”,“CalledTo”);
//17
request.addProperty(“CalledDataSearchCriteria”,“过去的天数”);
//18
请求。添加属性(“天数”、“1”);
//19
request.addProperty(“StartDate”和“”);
//20
//我有大约100个参数要发送,并且它们被成功生成
//我在这里分享几个例子
Log.v(“最终属性为”,request.toString());
SoapSerializationEnvelope=getSoapSerializationEnvelope(请求);
HttpTransportSE ht=getHttpTransportSE();
试一试{
调用(SOAP\u ACTION+methodname,信封);
测试HttpResponse(ht);
SoapPrimitive结果字符串=(SoapPrimitive)信封。getResponse();
//列表COOKIE_头=(列表)ht.getServiceConnection().getResponseProperties();
//对于(int i=0;i