shoap-0.2: Network/Soap.hs
module Network.Soap where
import Network.Curl
import Data.IORef
soapMessage header body = "<?xml version=\"1.0\"?><env:Envelope xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><env:Header>"++header++"</env:Header><env:Body>"++body++"</env:Body></env:Envelope>"
soapPost::URLString->[String]->IO (CurlCode,String)
soapPost url message = initialize >>= \ h -> do
ref <- newIORef []
setopts h [(CurlVerbose False),(CurlHttpHeaders ["SOAPAction: shoap"]),(CurlPostFields message),(CurlCookieJar "cookies"),(CurlURL url),(CurlWriteFunction (gatherOutput ref))]
rc<-perform h
lss<-readIORef ref
return (rc, concat $ reverse lss)