अतीत में मैंने निम्नलिखित विधि का उपयोग किया है, यह इन दिनों सबसे अच्छी विधि नहीं हो सकती है लेकिन इसने मेरे लिए सफलतापूर्वक काम किया है:
DECLARE @obj int,
@url VarChar(MAX),
@response VarChar(MAX),
@requestHeader VarChar(MAX),
@requestBody VarChar(MAX)
SET @url = 'http://....'
SET @requestBody = '<soapenv:Envelope>
<soapenv:Header/>
<soapenv:Body>
...
</soapenv:Body>
</soapenv:Envelope>'
EXEC sp_OACreate 'MSXML2.ServerXMLHttp', @obj OUT
EXEC sp_OAMethod @obj, 'Open', NULL, 'GET', @url, false
EXEC sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Type', 'text/xml;charset=UTF-8'
EXEC sp_OAMethod @obj, 'setRequestHeader', NULL, 'SOAPAction', 'POST'
EXEC sp_OAMethod @obj, 'setRequestHeader', NULL, 'Content-Length', LEN(@requestBody)
EXEC sp_OAMethod @obj, 'send', NULL, @requestBody
EXEC sp_OAGetProperty @obj, 'responseText', @response OUT
SELECT @response [RESPONSE]
EXEC sp_OADestroy @obj
मैंने इसका उपयोग एक webservice को कॉल करने के लिए किया है जो एक रिपोर्ट तैयार करता है और इसे विधि के भीतर ईमेल करता है।