Estoy intentando consumir un servicio web utilizando Delphi 2010 e Indy. Para establecer un flujo SOAP utilizable para compararlo con el creado por mi programa, estoy probando en SOAPUI. Estoy usando una secuencia SOAP proporcionada por el proveedor de servicios web que también coincide con la secuencia SOAP especificada en el archivo WSDL. Recibo un error HTTP 400 (solicitud incorrecta) del servicio.Solicitud incorrecta en SOAPUI
Según lo que puedo encontrar en línea, parece que recibir un error HTTP 400 indica que su solicitud SOAP está mal formada y el servicio web no puede leerla. He probado mi secuencia SOAP usando XMLPad y el XML parece estar bien formado. Supongo que esto puede significar que algo no coincide con su requisito de esquema. Primero comprobaré la descripción del esquema para la contraseña en caso de que no se envíe como texto sin formato. ¿Qué más debería estar revisando para eliminar un error HTTP 400?
Aquí es mi pedido (menos nombre de usuario y contraseña) en caso de que ayuda:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
xmlns:xop="http://www.w3.org/2004/08/xop/include"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://wwww3.org/2001/XMLSchema-instance">
<soap:Header>
<wsa:Action>http://edd.ca.gov/SendTransmission</wsa:Action>
<wsa:MessageID>urn:uuid:5aa788dc-86e1-448b-b085-2d2743cf9f26</wsa:MessageID>
<wsa:ReplyTo>
<wsa:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
</wsa:ReplyTo>
<wsa:To>http://fsettestversion.edd.ca.gov/fsetproxy/fsetservice.asmx</wsa:To>
<wsse:Security soap:mustUnderstand="1">
<wsse:UsernameToken wsu:Id="UsernameToken">
<wsse:Username>#USERNAME#</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">#PASSWORD#/wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">O5QWht1bslLCX6KnlEypAA==</wsse:Nonce>
<wsu:Created>2012-02-29T22:32:38.250Z</wsu:Created>
</wsse:UsernameToken>
<wsu:Timestamp wsu:Id="Timestamp-805a7373-335c-43b6-ba21-6596c4848dbf">
<wsu:Created>2012-02-22T15:41:42Z</wsu:Created>
<wsu:Expires>2012-02-22T15:46:42Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
</soap:Header>
<soap:Body>
<SendTransmission xmlns="http://edd.ca.gov/">
<SendTransmissionRequest xmlns="http://www.irs.gov/a2a/mef/MeFTransmitterServiceWse.xsd">
<TransmissionDataList>
<Count>1</Count>
<TransmissionData>
<TransmissionId>123456789</TransmissionId>
<ElectronicPostmark>2012-02-22T07:41:42.2502206-08:00</ElectronicPostmark>
</TransmissionData>
</TransmissionDataList>
</SendTransmissionRequest>
<fileBytes>
<xop:Include href="cid:[email protected]"/>
</fileBytes>
</SendTransmission>
</soap:Body>
</soap:Envelope>
Parece que las personas que están disponibles en EDD no van a ser de mucha ayuda. Dejé este proyecto de lado por un tiempo para poder concentrarme en otras cosas. Tendré que regresar, pero aún no he reservado tiempo. Estaría más que dispuesto a combinar esfuerzos. No veo que SO tenga una función de mensaje privado, pero si realmente quiere colaborar, vuelva a comentar y descubriremos una forma de comunicarse fuera de línea. – jrodenhi
Podría publicar mi correo electrónico si eso no "rompe las reglas" –
En realidad, mi dirección de correo electrónico está en mi perfil. Creo que el único problema con la publicación de su dirección de correo electrónico es que puede provocar que reciba un montón de correo no deseado.No creo que no publicar su dirección de correo electrónico lleve a no obtener un montón de spam, pero ¿quién soy yo? – jrodenhi