Sto tentando di utilizzare un servizio Web utilizzando Delphi 2010 e Indy. Per stabilire uno stream SOAP utilizzabile da confrontare con quello creato dal mio programma, sto testando in SOAPUI. Sto utilizzando un flusso SOAP fornito dal provider di servizi Web che corrisponde anche al flusso SOAP specificato nel file WSDL. Ricevo un errore HTTP 400 (richiesta errata) dal servizio.Richiesta non valida in SOAPUI
Da quello che posso trovare online, sembra che ricevere un errore HTTP 400 indica che la tua richiesta SOAP è malformata e non può essere letta dal servizio web. Ho testato il mio flusso SOAP utilizzando XMLPad e l'XML sembra essere ben formato. Suppongo che ciò possa significare che qualcosa non corrisponde ai suoi requisiti di schema. Per prima cosa controllerò la descrizione dello schema per la password nel caso in cui ci si aspetti che non venga inviata come testo normale. Che altro dovrei controllare per eliminare un errore HTTP 400?
Ecco la mia richiesta (meno username e password) in caso aiuta:
<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>
Sembra che le persone che sono prontamente disponibili a EDD non saranno di grande aiuto. Ho messo da parte questo progetto per un po 'in modo da concentrarmi su altre cose. Dovrò tornare indietro ma non ho ancora messo da parte il tempo. Sarei più che disposto a combinare gli sforzi. Non vedo che SO abbia una funzione di messaggio privato, ma se sei seriamente intenzionato a collaborare, commenta nuovamente e scopriremo un modo per comunicare offline. – jrodenhi
Potrei pubblicare la mia e-mail se questo non "infrange le regole" –
In realtà, il mio indirizzo e-mail è nel mio profilo. Penso che l'unico problema con la pubblicazione del tuo indirizzo e-mail sia che potrebbe portare a un sacco di spam.Non penso che non pubblicare il tuo indirizzo email porti a non ottenere un sacco di spam ma chi sono io per dire. – jrodenhi