module Network.Soap where import Network.Curl import Data.IORef soapMessage header body = ""++header++""++body++"" 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)