Pas SOAPAction erreur d'en-tête dans l'envoi d'une requête SOAP HTTP POST
Je suis l'envoi d'une Requête SOAP HTTP POST dans SOAPUI en raison de certaines contraintes du projet.
Ma Demande est ici :
POST httplink HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: "urn:HPD_IncidentInterface_WS/HelpDesk_Query_Service"
Content-Length: 725
Host: itsm-mt-dev
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:HPD_IncidentInterface_WS">
<soapenv:Header>
<urn:AuthenticationInfo>
<urn:userName>XXXXXXXXXX</urn:userName>
<urn:password>XXXXXXXXX</urn:password>
<!--Optional:-->
<urn:authentication>?</urn:authentication>
<!--Optional:-->
<urn:locale>?</urn:locale>
<!--Optional:-->
<urn:timeZone>?</urn:timeZone>
</urn:AuthenticationInfo>
</soapenv:Header>
<soapenv:Body>
<urn:HelpDesk_Query_Service>
<urn:Incident_Number>XXXXXXXXXX</urn:Incident_Number>
</urn:HelpDesk_Query_Service>
</soapenv:Body>
</soapenv:Envelope>
Bien que j'avais mis SOAPAction en-tête, j'ai toujours pas SOAPAction erreur d'en-tête.
Réponse comme suit:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<soapenv:Fault>
<faultcode xmlns:ns1="http://xml.apache.org/axis/">ns1:Client.NoSOAPAction</faultcode>
<faultstring>no SOAPAction header!</faultstring>
<detail>
<ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">itsm-mt-dev</ns2:hostname>
</detail>
</soapenv:Fault>
</soapenv:Body>
</soapenv:Envelope>
Quelqu'un peut-il me suggérer ce que nous pouvons faire ici ?
Dans votre WSDL recherchez une ligne qui ressemble à quelque chose comme
<soap:operation soapAction="http://example.com/GetLastTradePrice"/>
. Qu'est-ce que le soapAction égale à la HelpDesk_Query_Service
opération?OriginalL'auteur Arun | 2014-04-16
Vous devez vous connecter pour publier un commentaire.
On dirait que vous êtes l'envoi d'une mauvaise soapAction en-tête. Regarder le WSDL et de trouver la valeur de soapAction élément pour le service testés.
Dans le WSDL recherchez une ligne similaire à
<soap:operation soapAction="http://example.com/GetLastTradePrice"/>
.OriginalL'auteur Abhishek Asthana
code
Dim bs = Encodage.UTF8.GetBytes("soap") Dim wr Comme HttpWebRequest = HttpWebRequest.Créer("xx") wr.Les en-têtes.Add("ur de savon hdr", "xxx") wr.ContentType = "text/xml; charset=utf-8" wr.Method = "POST" wr.ContentLength = bs.Longueur Dim sds Stream = wr.GetRequestStream() sds.Écrire(bs, 0, bs.La longueur) de la sdd.Close() Dim wr Comme WebResponse = wr.GetResponse() sds = wr.GetResponseStream() Dim sr Que StreamReader = New StreamReader(sds) Dim strResult as String = sr.ReadToEnd() txtResult.Texte = strResult sds.Close() sr.Close() wr.Close()code
OriginalL'auteur ynneh
J'ai essayé d'ajouter un commentaire dans la réponse suggérée par ynneh mais le code n'est pas lisible.
Sa réponse est utile, mais est trop court.
Créer un httpwebrequest et ensuite ajouter des en-têtes.
voici l'exemple complet:
OriginalL'auteur Manpreet Singh Dhillon
//Delphi
OriginalL'auteur Vadim