2012-06-12 14 views
6

मैं ksoap2 का उपयोग कर जावा वेब सेवा पर कॉल करने का प्रयास कर रहा हूं।ksoap2 प्रतिक्रिया में एंड्रॉइड अप्रत्याशित प्रकार

private static final String SECURITY_NAMESPACE = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"; 
private static final String USERNAME_TOKEN_NAMESPACE = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"; 
private static final String PASSWORD_TYPE = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME); 

    Element usernameElement = new Element().createElement(SECURITY_NAMESPACE, "Username"); 
    usernameElement.addChild(Node.TEXT, "username"); 
    Element passwordElement = new Element().createElement(SECURITY_NAMESPACE, "Password"); 
    passwordElement.setAttribute(null, "Type", PASSWORD_TYPE); 
    passwordElement.addChild(Node.TEXT, "password"); 

    Element usernameTokenElement = new Element().createElement(USERNAME_TOKEN_NAMESPACE, "UsernameToken"); 
    usernameTokenElement.addChild(Node.ELEMENT, usernameElement); 
    usernameTokenElement.addChild(Node.ELEMENT, passwordElement); 

    Element securityElement = new Element().createElement(SECURITY_NAMESPACE, "Security"); 
    securityElement.setAttribute(null, "mustUnderstand", "1"); 
    securityElement.setPrefix(null, SECURITY_NAMESPACE); 
    securityElement.addChild(Node.ELEMENT, usernameTokenElement); 

    Element[] header = new Element[]{securityElement}; 

    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
    envelope.headerOut = header; 
    envelope.setOutputSoapObject(request); 

    HttpTransportSE httpTransport = new HttpTransportSE(URL); 
    httpTransport.debug = true; 

    try{ 
     httpTransport.call(SOAP_ACTION, envelope); 
     SoapObject response = (SoapObject) envelope.getResponse(); 
    }catch (Exception e) { 
     Log.e("Soap", e.getMessage(), e); 
    } 

निम्नलिखित कॉल मैं मिल जब मैं बनाने: मैं ksoap2-android-विधानसभा-2.6.5-जार-साथ-dependencies.jar और एंड्रॉयड एपीआई स्तर 8.

गतिविधि कोड का उपयोग कर रहा अपवाद:

06-12 13:01:51.563: E/Soap(471): unexpected type (position:TEXT ������������U��n� [email protected]:97 in [email protected]) 

06-12 13:01:51.563: E/Soap(471): org.xmlpull.v1.XmlPullParserException: unexpected type (position:TEXT ������������U��n� [email protected]:97 in [email protected]) 

कोई विचार क्या हो सकता है? क्या यह चरित्र एन्कोडिंग, जीजेआईआईपी या गलत साबुन संस्करण के साथ कुछ करने के लिए हो सकता है?

किसी भी मदद की सराहना की जाएगी।

धन्यवाद डेविड

+0

कोशिश (VER11 के बजाय) 'SoapEnvelope.VER12' करने के लिए स्विच। –

उत्तर

1

मैं जब मैं ksoap2 2.6.5 का उपयोग कर रहा एक ही समस्या थी। मैंने तय किया कि ver के साथ। 2.5.4

यहाँ

: http://code.google.com/p/ksoap2-android/source/browse/m2-repo/com/google/code/ksoap2-android/ksoap2-android-assembly/#ksoap2-android-assembly%2F2.5.4

+0

संस्करण-2.6.4 भी समस्या हल करता है। – mostar

संबंधित मुद्दे