2012-03-20 73 views
2

我有ksop請求。 我揉生產是Ksoap落後結果

<ns4:senddata> 
     <connectionId xsi:type="xsd:string"> 
     asdfdsafdsfasdfdsa 
     </connectionId> 
     <tws xsi:type="ns4:tws"> 
      <message xsi:type="xsd:string"> 
       this test message with a message id 
      </message> 
      <messageId>123</messageId> 
      <num xsi:type="SOAP-ENC:Array" 
        SOAP-ENC:arrayType="xsd:string[3]" 
        SOAP-ENC:offset="[0]"> 
       <item xsi:type="xsd:string">977</item> 
       <item xsi:type="xsd:string">496</item> 
      </num> 
     </tws> 
    </ns4:senddata> 

和我所得到的是

<senddata xmlns= WSDL_TARGET_NAMESPACE > 
     <tws> 
      <num> 
       <item xsi:type="xsd:string">977</item> 
       <item xsi:type="xsd:string">496</item> 
      </num> 
      <message i:type="d:string"> 
       this test message with a message id 
      </message> 
      <messageId>123</messageId> 
     </tws> 
     <connectionId xsi:type="d:string"> 
     asdfdsafdsfasdfdsa 
     </connectionId> 
    </senddata> 

,你看到的ConnectionId是在底部而非頂部。

private class smsSendRequest extends AsyncTask<String, Void, String> { 
@Override 
protected String doInBackground(String... urls) { 
String reSultstr = null; 
for (String url : urls) { 
    SoapObject request = new SoapObject(WSDL_TARGET_NAMESPACE, url); 
    request.addProperty("connectionId", did); 

     SoapObject tws= new SoapObject("", "tws2"); 
    tws.addProperty("message", "message contents"); 
    tws.addProperty("messageId", "123"); 

     SoapObject num= new SoapObject("SOAP-ENC:Array", "mobiles"); 
    num.addProperty("item", "496"); 
      num.addProperty("item", "977"); 
      tws.addSoapObject(num); 
    request.addSoapObject(tws); 

     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.dotNet = true; 
    envelope.setOutputSoapObject(request); 
    HttpTransportSE httpTransport = new HttpTransportSE(SOAP_ADDRESS); 
    try { 
     httpTransport.debug = true; 
     httpTransport.call(SOAP_ACTION, envelope); 
        SoapObject response = (SoapObject)envelope.getResponse(); 
        reSultstr = response.getProperty(0).toString(); 
     } 
    catch (Exception exception){ 
     reSultstr = exception.toString(); 
     } 
    } 
    return reSultstr; 
    } 

我使用Ksoap2 2.5.8 如果我切換到2.6,它發送請求*之前只是致命錯誤。 有人可以看到什麼是錯的。 我有兩個其他ksop請求,一切都很好,但這一個有額外的TWS節點,我相信問題是ConnectionId揉來第一。

+0

HI約翰, 我在WCF Web服務的訪問,其中有DataContantSeriliazation類型的XML面臨着同樣的問題。你可以幫助我,如果你有一些時間..在此先感謝 – 2012-06-22 09:35:32

+0

樂於幫助,但無法解決我的問題,並已放棄它。然而,我在這個評論中遇到的落後結果已被KSOAP的創造者所修復 – John 2012-06-26 01:37:56

回答