2012-06-12 8 views
6

Próbuję wykonać połączenie z usługą sieciową Java za pomocą ksoap2. Używam ksoap2-android-montażowej-2.6.5-Jar-z-dependencies.jar i poziomu API Androida 8.ksoap2 Android nieoczekiwany typ w odpowiedzi

Kod aktywny:

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); 
    } 

kiedy robię wezwanie pojawia się następujący wyjątek:

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]) 

Jakieś pomysły, co może być przyczyną? Czy może to mieć coś wspólnego z kodowaniem znaków, GZIP lub nieprawidłową wersją mydła?

Każda pomoc zostanie bardzo doceniona.

Dzięki David

+0

Spróbuj przełączyć się na 'SoapEnvelope.VER12' (zamiast VER11). –

Odpowiedz

Powiązane problemy