He estado luchando durante horas tratando de construir la solicitud SOAP correcta utilizando ksoap2 para Android sin suerte. La solicitud ideales se ve así:Intentando construir una solicitud SOAP correcta
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header>
<AuthorizationToken xmlns="http://www.avectra.com/2005/">
<Token>string</Token>
</AuthorizationToken>
</soap:Header>
<soap:Body>
<ExecuteMethod xmlns="http://www.avectra.com/2005/">
<serviceName>string</serviceName>
<methodName>string</methodName>
<parameters>
<Parameter>
<Name>string</Name>
<Value>string</Value>
</Parameter>
</parameters>
</ExecuteMethod>
</soap:Body>
</soap:Envelope>
estoy usando el siguiente código para generar mi solicitud:
SoapObject request = new SoapObject(NAMESPACE, METHOD);
request.addProperty("serviceName", SERVICENAME);
request.addProperty("methodName", METHODNAME);
SoapObject nestedParameters = new SoapObject(NAMESPACE, "parameters");
SoapObject param = new SoapObject(NAMESPACE, "Parameter");
param.addProperty("Name", name);
param.addProperty("Value", value);
nestedParameters.addSoapObject(param);
request.addSoapObject(nestedParameters);
SoapSerializationEnvelope envelope =
new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);
envelope.dotNet = true;
envelope.implicitTypes = true;
envelope.headerOut = new Element[1];
Element header = new Element().createElement(NAMESPACE, "AuthorizationToken");
Element token = new Element().createElement(NAMESPACE, "Token");
token.addChild(Node.TEXT, this.AUTH_TOKEN);
header.addChild(Node.ELEMENT, token);
envelope.headerOut[0] = header;
Lo ksoap2 está construyendo es:
<v:Envelope xmlns:i="http://www.w3.org/1999/XMLSchema-instance" xmlns:d="http://www.w3.org/1999/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
<v:Header>
<n0:AuthorizationToken xmlns:n0="http://www.avectra.com/2005/">
<n0:Token>string</n0:Token>
</n0:AuthorizationToken>
</v:Header>
<v:Body>
<ExecuteMethod xmlns="http://www.avectra.com/2005/" id="o0" c:root="1">
<serviceName>AHAWebServices</serviceName>
<methodName>MemberDirectory</methodName>
<parameters i:type="n1:parameters" xmlns:n1="http://www.avectra.com/2005/">
<Parameter i:type="n1:Parameter">
<Name>string</Name>
<Value>string</Value>
</Parameter>
</parameters>
</ExecuteMethod>
</v:Body>
</v:Envelope>
Tengo la sensación de que el problema está en el encabezado con los prefijos n0 pero no tengo ni idea de cómo deshacerme de ellos. Los eliminé del cuerpo estableciendo implicitTypes en verdadero, pero no puedo encontrar una configuración similar para el encabezado. Soy nuevo en SOAP, por lo que cualquier otro consejo es muy apreciado. ¿Alguien tiene una idea de cómo podría solucionar esto?
¿Puede decirme acerca de SoapObject y los valores lo transmiten ...? –