I'm trying to use the Sabre SOAP API to retrieve a profile. I'm using the SOAP template here (https://developer.sabre.com/guides/travel-agency/developer-guides/soap-apis-request-format) with the specifics here (https://developer.sabre.com/sabre_hospitality/apis/soap_apis/hotel/profile/read_profile). I'm able to get a BinarySession token ok using the SessionCreateRQ request ok. It starts with the text "Shared/IDL:IceSess/SessMgr".
My request looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Header>
<eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="1.0">
<eb:From>
<eb:PartyId />
</eb:From>
<eb:To>
<eb:PartyId />
</eb:To>
<eb:CPAId>ipcc</eb:CPAId>
<eb:ConversationId>conversationID</eb:ConversationId>
<eb:Service>OTA_ReadRQ</eb:Service>
<eb:Action>OTA_ReadRQ</eb:Action>
<eb:MessageData>
<eb:MessageId>mid:20001209-133003-2333#clientofsabre.com</eb:MessageId>
<eb:Timestamp>2001-02-15T11:15:12Z</eb:Timestamp>
<eb:TimeToLive>2001-02-15T11:15:12Z</eb:TimeToLive>
</eb:MessageData>
</eb:MessageHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
<wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">MY SECURITY TOKEN GOES HERE</wsse:BinarySecurityToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<eb:SoapAPIServiceActionCode>
<OTA_ReadRQ Version="1" EchoToken="1122" PrimaryLangID="en" xmlns="http://www.opentravel.org/OTA/2003/05">
<ReadRequests>
<ProfileReadRequest>
<UniqueID Type="1" ID="14EF985B2C" ID_Context="crs">
<CompanyName CodeContext="hotel" Code="10001"/>
</UniqueID>
</ProfileReadRequest>
</ReadRequests>
</OTA_ReadRQ>
</eb:SoapAPIServiceActionCode>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
But when I do this I get the error:
<soap-env:Fault>
<faultcode>soap-env:Client.InvalidAction</faultcode>
<faultstring>Action specified in EbxmlMessage does not exist.</faultstring>
<detail>
<StackTrace>com.sabre.universalservices.base.exception.ApplicationException: errors.xml.USG_INVALID_ACTION</StackTrace>
</detail>
</soap-env:Fault>
Can anyone advise where I'm going wrong?
Try to use <eb:Action>OTA_ProfileReadRQ</eb:Action> instead.
Sabre responds with OTA_ProfileReadRS, so I suppose the Action code may contain "ProfileRead" as well.
First of all you must have permission in your iPCC/EPR the authorization to use this service.
The faultstring="Action specified in EbxmlMessage does not exist." error was in <eb:Action>OTA_ReadRQ</eb:Action>.
You can read more details about the hospitallity services in:
https://github.com/SabreDevStudio/get-hotel-avail-v2-sample-nodejs
https://github.com/SabreDevStudio/get-hotel-details-sample-nodejs
https://github.com/SabreDevStudio/hotel-price-check-v2-sample-nodejs
Related
I'm trying to make an request TokenCreateRQ on https://sws-crt.cert.havail.sabre.com/ endpoint. Replaced required fields by my own credentials. Current credentials looks like next:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<MessageHeader xmlns="http://www.ebxml.org/namespaces/messageHeader">
<From>
<PartyId>Agency</PartyId>
</From>
<To>
<PartyId>Sabre_API</PartyId>
</To>
<ConversationId>2021.01.DevStudio</ConversationId>
<Action>TokenCreateRQ</Action>
</MessageHeader>
<Security xmlns="http://schemas.xmlsoap.org/ws/2002/12/secext">
<UsernameToken>
<Username>my_username</Username>
<Password>my_password</Password>
<Organization>my_pcc</Organization>
<Domain>DEFAULT</Domain>
</UsernameToken>
</Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<TokenCreateRQ Version="1.0.0" xmlns="http://webservices.sabre.com"/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
and response comes following:
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header>
<eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1">
<eb:From>
<eb:PartyId eb:type="URI">Sabre_API</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId eb:type="URI">Agency</eb:PartyId>
</eb:To>
<eb:ConversationId>2021.01.DevStudio</eb:ConversationId>
<eb:Action>ErrorRS</eb:Action>
<eb:MessageData>
<eb:MessageId>2746048641716630381</eb:MessageId>
<eb:Timestamp>2021-09-14T17:49:31</eb:Timestamp>
</eb:MessageData>
</eb:MessageHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext"/>
</soap-env:Header>
<soap-env:Body>
<soap-env:Fault>
<faultcode>soap-env:Client.AuthenticationFailed</faultcode>
<faultstring>Authentication failed</faultstring>
<detail>
<StackTrace>com.sabre.universalservices.base.security.AuthenticationException: errors.authentication.USG_AUTHENTICATION_FAILED</StackTrace>
</detail>
</soap-env:Fault>
</soap-env:Body>
</soap-env:Envelope>
Credentials are correct. Does anybody knows what may cause an issue?
Probable cause, your credentials are not activated to consume Sabre webservices or you might have to reset your password.
I have created an application developped by Embarcadero XE5 C++. I use THTTPRio to consume a web service.
I have a problem with the request message generated by our application. It seems that namespaces are missing in the soap message for NS1, NS2 and NS3.
I think there's a bug in the Embarcadero.
Here the SOAP request message generated by Embarcadero:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<G110Request xmlns="urn:wsdltypes.nmvs.eu:v1.0">
<Header xmlns="urn:types.nmvs.eu:v1.0">
<Auth>
<ClientLoginId>xxx</ClientLoginId>
<UserId>xxx</UserId>
<Password>xxx</Password>
</Auth>
<UserSoftware NS1:name="xxxxx" NS2:supplier="xxxx"/>
</Header>
<Body xmlns="urn:types.nmvs.eu:v1.0">
<Product>
<ProductCode NS3:scheme="GTIN">1234567891234</ProductCode>
</Product>
</Body>
</G110Request>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Thanks for your help
I am trying to access the sabre soap api for token access. The following is a sample from the sabre website for a request to the sabre soap api:
<SOAP-ENV:Envelope>
<SOAP-ENV:Header>
<eb:MessageHeader eb:version="1">
<eb:From>
<eb:PartyId>Client</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId>SWS</eb:PartyId>
</eb:To>
<eb:CPAId>PCC</eb:CPAId>
<eb:ConversationId>1234</eb:ConversationId>
<eb:Service>Session</eb:Service>
<eb:Action>TokenCreateRQ</eb:Action>
<eb:MessageData>
<eb:MessageId>1234</eb:MessageId>
<eb:Timestamp>2015-01-01T00:00:00</eb:Timestamp>
</eb:MessageData>
</eb:MessageHeader>
<wsse:Security>
<wsse:UsernameToken>
<wsse:Username>USER</wsse:Username>
<wsse:Password>PASSWORD</wsse:Password>
<Organization>PCC</Organization>
<Domain>DOMAIN</Domain>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<sws:TokenCreateRQ Version="1.0.0" />
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
In the Organization tag above there is a field called PCC.
The sabre website states that PCC is Sabre shorthand for a Pseudo City Code (PCC) that includes an Employee Profile Record (EPR) with Sabre APIs. However I am not sure where I find the value for PCC for my soap request.
You will be granted a PCC once you become a Sabre customer.
Once you have an API agreement, you will get an Email with the User/Passcode/PCC combination that you need to use in order to create a SOAP session.
You can get in contact with the sales team through the Contact Us/Become a Sabre customer feature on DevStudio.
Apply for new sabre dev account online and you will get the PCC code which can be found in the sabre account settings
Sabre Team will provide credentials for production as well development
For the development keep the url as https://sws-crt.cert.sabre.com/
Use Username/Password provided from them
For token i use SessionCreateRQ and work fine.
This is example of request.
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<SOAP-ENV:Header>
<eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:version="1.0">
<eb:From>
<eb:PartyId type="urn:x12.org:IO5:01">abcd.com</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId type="urn:x12.org:IO5:01">webservices.sabre.com</eb:PartyId>
</eb:To>
<eb:CPAId>PCCHERE</eb:CPAId>
<eb:ConversationId>6f6794a902589f6a759ad231376e2c3e</eb:ConversationId>
<eb:Service eb:type="OTA">SessionCreateRQ</eb:Service>
<eb:Action>SessionCreateRQ</eb:Action>
<eb:MessageData>
<eb:MessageId>TRB_0.99863000 1635836545_0</eb:MessageId>
<eb:Timestamp>2021-11-02T09:02:25</eb:Timestamp>
<eb:TimeToLive>2022-11-02T00:00:00</eb:TimeToLive>
</eb:MessageData>
</eb:MessageHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/12/utility">
<wsse:UsernameToken>
<wsse:Username>username</wsse:Username>
<wsse:Password>password</wsse:Password>
<Organization>PCCHERE</Organization>
<Domain>DEFAULT</Domain>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<SessionCreateRQ>
<POS>
<Source PseudoCityCode="PCCHERE"/>
</POS>
</SessionCreateRQ>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
I'm using the SOA Client Firefox addon to sent out a a SOAP request to some ONVIF cameras. Below you will see the request for the 'GetServices' request. It works fine for one camera, but for another (AXIS camera) I get the error: 'Invalid SOAP message or SOAP version mismatch'.
There are other questions about this. But none of the answers were clear to me. One mentioned changing to soap version 1.2 (how do I do this?). And this one seems to be solved by a brief comment: Onvif - Invalid SOAP message or SOAP version mismatch
If anyone thinks it is relevant to my case, could you expand on it please.
URL = http://10.253.253.2/onvif/device_service
Method = POST
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
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:ns0="http://www.onvif.org/ver10/device/wsdl"
xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<wsse:Security mustUnderstand="true">
<wsse:UsernameToken>
<wsse:Username>admin</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">sLOOZG8o+369zaBclGwn4+tjOac=</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">NWQyMzVjNGNhYmIxMTQ1ZjEzZWVlYzcyZDkzZjcwODI=</wsse:Nonce>
<wsu:Created>2015-07-27T15:47:31.178534Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<ns1:Body>
<ns0:GetServices>
<ns0:IncludeCapability>false</ns0:IncludeCapability>
</ns0:GetServices>
</ns1:Body>
</SOAP-ENV:Envelope>
And the error response...
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsa5="http://www.w3.org/2005/08/addressing" xmlns:xmime="http://tempuri.org/xmime.xsd" xmlns:xop="http://www.w3.org/2004/08/xop/include" xmlns:wsrfbf="http://docs.oasis-open.org/wsrf/bf-2" xmlns:wstop="http://docs.oasis-open.org/wsn/t-1" xmlns:tt="http://www.onvif.org/ver10/schema" xmlns:wsrfr="http://docs.oasis-open.org/wsrf/r-2" xmlns:aa="http://www.axis.com/vapix/ws/action1" xmlns:aev="http://www.axis.com/vapix/ws/event1" xmlns:ali1="http://www.axis.com/vapix/ws/light/CommonBinding" xmlns:ali2="http://www.axis.com/vapix/ws/light/IntensityBinding" xmlns:ali3="http://www.axis.com/vapix/ws/light/AngleOfIlluminationBinding" xmlns:ali4="http://www.axis.com/vapix/ws/light/DayNightSynchronizeBinding" xmlns:ali="http://www.axis.com/vapix/ws/light" xmlns:tan1="http://www.onvif.org/ver20/analytics/wsdl/RuleEngineBinding" xmlns:tan2="http://www.onvif.org/ver20/analytics/wsdl/AnalyticsEngineBinding" xmlns:tan="http://www.onvif.org/ver20/analytics/wsdl" xmlns:tds="http://www.onvif.org/ver10/device/wsdl" xmlns:tev1="http://www.onvif.org/ver10/events/wsdl/NotificationProducerBinding" xmlns:tev2="http://www.onvif.org/ver10/events/wsdl/EventBinding" xmlns:tev3="http://www.onvif.org/ver10/events/wsdl/SubscriptionManagerBinding" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:tev4="http://www.onvif.org/ver10/events/wsdl/PullPointSubscriptionBinding" xmlns:tev="http://www.onvif.org/ver10/events/wsdl" xmlns:timg="http://www.onvif.org/ver20/imaging/wsdl" xmlns:tptz="http://www.onvif.org/ver20/ptz/wsdl" xmlns:trt="http://www.onvif.org/ver10/media/wsdl" xmlns:ter="http://www.onvif.org/ver10/error" xmlns:tns1="http://www.onvif.org/ver10/topics" xmlns:tnsaxis="http://www.axis.com/2009/event/topics">
<SOAP-ENV:Body>
<SOAP-ENV:Fault SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Code>
<SOAP-ENV:Value>env:VersionMismatch</SOAP-ENV:Value>
</SOAP-ENV:Code>
<SOAP-ENV:Reason>
<SOAP-ENV:Text xml:lang="en">SOAP version mismatch</SOAP-ENV:Text>
</SOAP-ENV:Reason>
<SOAP-ENV:Detail>
<SOAP-ENV:Text>Invalid SOAP message or SOAP version mismatch</SOAP-ENV:Text>
</SOAP-ENV:Detail>
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
UPDATE
I've since discovered that to change to SOAP v1.2 you need to use
http://www.w3.org/2003/05/soap-envelope instead of http://schemas.xmlsoap.org/soap/envelop.
I tried that (two replacements in above code) but then it did not work in either camera. I cant see what I'm doing wrong.
Ok figured it out. The axis camera needs SOAP v1.2. And the differences between the versions are: the namespace url for xmlns:SOAP-ENV; the content-type and action in the http header.
ONVIF using SOAP v1.1 ...
url = http://10.253.253.159/onvif/device_service
Method = POST
http header = Content-Type: text/xml; charset=utf-8; action="http://www.onvif.org/ver10/device/wsdl/GetSystemDateAndTime";
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
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:wsdl="http://www.onvif.org/ver10/device/wsdl"
xmlns:sch="http://www.onvif.org/ver10/schema"
>
<SOAP-ENV:Header>
<wsse:Security mustUnderstand="true">
<wsse:UsernameToken>
<wsse:Username>admin</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0">admin</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">NWQyMzVjNGNhYmIxMTQ1ZjEzZWVlYzcyZDkzZjcwODI=</wsse:Nonce>
<wsu:Created>2015-07-27T15:47:31.178534Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<wsdl:GetSystemDateAndTime/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
ONVIF using SOAP v1.2 ...
url = http://10.253.253.159/onvif/device_service
Method = POST
http header = Content-Type: application/soap+xml; charset=utf-8;
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
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:wsdl="http://www.onvif.org/ver10/device/wsdl"
xmlns:sch="http://www.onvif.org/ver10/schema"
>
<SOAP-ENV:Header>
<wsse:Security mustUnderstand="true">
<wsse:UsernameToken>
<wsse:Username>admin</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0">admin</wsse:Password>
<wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">NWQyMzVjNGNhYmIxMTQ1ZjEzZWVlYzcyZDkzZjcwODI=</wsse:Nonce>
<wsu:Created>2015-07-27T15:47:31.178534Z</wsu:Created>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<wsdl:GetSystemDateAndTime/>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
#spiderplant0 gave the corrent answer. In my case i had a SoapUI project and i was trying to call a Soap 1.2 endpoint. I configured the WS-Security into this project, and i used the wrong namespace "http://schemas.xmlsoap.org/soap/envelope/" in the Signature step, specifically in the Body part. Because of this misconfiguration, the endpoint kept telling me that it "could not validate request: security processing failed (actions mismatch)", which didn't make sense to me, as the WS-Security steps were given in the correct order.
I replaced the wrong namespace with the correct one "http://www.w3.org/2003/05/soap-envelope", and it worked!
Thanks to #spiderplant0 for pointing this out!
I've written a SOAP service so my Silverlight application can add entires into my database. The server is written in PHP, and in order to test everything, I've written a PHP client.
My client seems to be sending its request correctly. This is what is generated when I call _getLastRequest():
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="urn:blogPosts"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:saveBlogPost>
<userId xsi:type="xsd:int">1</userId>
<catId xsi:type="xsd:int">1</catId>
<subCatId xsi:type="xsd:int">1</subCatId>
<title xsi:type="xsd:string">Web Service Test</title>
<blogPost xsi:type="xsd:string">Testing</blogPost>
</ns1:saveBlogPost>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
However, when the server responds, only a partial message appears:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="urn:blogPosts"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:saveBlogPostRe
The error message I receive is "looks like we got no XML document".
Any help you could provide would be greatly appreciated.
My solution: forget SOAP and use REST :)