SQL Server
SQL Server
HTTP SOAP 1.1 Request and Response using POST
See more HTTP Examples
Demonstrates a working SOAP 1.1 request and response using POST with a live server. You may try running this example with the URLs and data provided. See http://secure.smartbearsoftware.com/samples/testcomplete10/webservices/Service.asmx?WSDL for detailsChilkat SQL Server Downloads
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
DECLARE @hr int
-- Important: Do not use nvarchar(max). See the warning about using nvarchar(max).
DECLARE @sTmp0 nvarchar(4000)
DECLARE @success int
SELECT @success = 0
-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
-- --------------------------------------------------------------------------------
-- Also see Chilkat's Online WSDL Code Generator
-- to generate code and SOAP Request and Response XML for each operation in a WSDL.
-- --------------------------------------------------------------------------------
DECLARE @http int
EXEC @hr = sp_OACreate 'Chilkat.Http', @http OUT
IF @hr <> 0
BEGIN
PRINT 'Failed to create ActiveX component'
RETURN
END
-- Generate the following XML:
-- <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:smar="http://smartbear.com">
-- <soapenv:Header/>
-- <soapenv:Body>
-- <smar:HelloWorld/>
-- </soapenv:Body>
-- </soapenv:Envelope>
DECLARE @soapXml int
EXEC @hr = sp_OACreate 'Chilkat.Xml', @soapXml OUT
EXEC sp_OASetProperty @soapXml, 'Tag', 'soapenv:Envelope'
EXEC sp_OAMethod @soapXml, 'AddAttribute', @success OUT, 'xmlns:soapenv', 'http://schemas.xmlsoap.org/soap/envelope/'
EXEC sp_OAMethod @soapXml, 'AddAttribute', @success OUT, 'xmlns:smar', 'http://smartbear.com'
EXEC sp_OAMethod @soapXml, 'UpdateChildContent', NULL, 'soapenv:Header', ''
EXEC sp_OAMethod @soapXml, 'UpdateChildContent', NULL, 'soapenv:Body|smar:HelloWorld', ''
EXEC sp_OAMethod @soapXml, 'GetXml', @sTmp0 OUT
PRINT @sTmp0
DECLARE @req int
EXEC @hr = sp_OACreate 'Chilkat.HttpRequest', @req OUT
EXEC sp_OASetProperty @req, 'HttpVerb', 'POST'
EXEC sp_OASetProperty @req, 'SendCharset', 0
EXEC sp_OAMethod @req, 'AddHeader', NULL, 'Content-Type', 'text/xml; charset=utf-8'
EXEC sp_OAMethod @req, 'AddHeader', NULL, 'SOAPAction', 'http://smartbear.com/HelloWorld'
EXEC sp_OASetProperty @req, 'Path', '/samples/testcomplete10/webservices/Service.asmx'
EXEC sp_OAMethod @soapXml, 'GetXml', @sTmp0 OUT
EXEC sp_OAMethod @req, 'LoadBodyFromString', @success OUT, @sTmp0, 'utf-8'
EXEC sp_OASetProperty @http, 'FollowRedirects', 1
DECLARE @resp int
EXEC @hr = sp_OACreate 'Chilkat.HttpResponse', @resp OUT
EXEC sp_OAMethod @http, 'HttpSReq', @success OUT, 'secure.smartbearsoftware.com', 443, 1, @req, @resp
IF @success = 0
BEGIN
EXEC sp_OAGetProperty @http, 'LastErrorText', @sTmp0 OUT
PRINT @sTmp0
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @soapXml
EXEC @hr = sp_OADestroy @req
EXEC @hr = sp_OADestroy @resp
RETURN
END
DECLARE @xmlResponse int
EXEC @hr = sp_OACreate 'Chilkat.Xml', @xmlResponse OUT
EXEC sp_OAGetProperty @resp, 'BodyStr', @sTmp0 OUT
EXEC sp_OAMethod @xmlResponse, 'LoadXml', @success OUT, @sTmp0
EXEC sp_OAMethod @xmlResponse, 'GetXml', @sTmp0 OUT
PRINT @sTmp0
-- A successful XML response:
-- <?xml version="1.0" encoding="utf-8" ?>
-- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
-- <soap:Body>
-- <HelloWorldResponse xmlns="http://smartbear.com">
-- <HelloWorldResult>Hello World</HelloWorldResult>
-- </HelloWorldResponse>
-- </soap:Body>
-- </soap:Envelope>
EXEC @hr = sp_OADestroy @http
EXEC @hr = sp_OADestroy @soapXml
EXEC @hr = sp_OADestroy @req
EXEC @hr = sp_OADestroy @resp
EXEC @hr = sp_OADestroy @xmlResponse
END
GO