Send Beginners mailing list submissions to
[email protected]
To subscribe or unsubscribe via the World Wide Web, visit
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
or, via email, send a message with subject or body 'help' to
[email protected]
You can reach the person managing the list at
[email protected]
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Beginners digest..."
Today's Topics:
1. soap client python -> haskell (PICCA Frederic-Emmanuel)
----------------------------------------------------------------------
Message: 1
Date: Fri, 23 Feb 2018 15:11:27 +0000
From: PICCA Frederic-Emmanuel
<[email protected]>
To: "The Haskell-Beginners Mailing List - Discussion of primarily
beginner-level topics related to Haskell" <[email protected]>
Subject: [Haskell-beginners] soap client python -> haskell
Message-ID:
<a2a20ec3b8560d408356cac2fc148e530107db0...@sun-dag3.synchrotron-soleil.fr>
Content-Type: text/plain; charset="us-ascii"
Hello, I try to reproduce this kind of python code into haskell
--- python -- whcih use the suds module
cj = CookieJar()
url_opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
transport = HttpAuthenticated(username=self.getIspybUserName(),
password=self.getIspybPassWord())
service_name = "ToolsForCollectionWebService"
url =
"http://195.221.10.20/ispyb-ws/ispybWS/ToolsForCollectionWebService?wsdl"
collectionWSClient = Client(url, transport=transport, timeout=3)
collect_params =
collectionWSClient.service.findDataCollection(dataCollectionId)---
---
Has you can see, I create a Transport whcih need an Authentification and also I
need to use a cookieJar in oder to manage the connection.
The a soap client is instanciated from the url and with this transport.
Then the findDatacollection service is called.
Now I would like to reproduce this with Haskell and the soap package (or not if
it is easier without)
I started like this
getDataCollection :: Transport -> Int -> IO Response
getDataCollection t i = invokeWS t url () body parser
where
url =
"http://195.221.10.20/ispyb-ws/ispybWS/ToolsForCollectionWebService?wsdl" --
?wsdl/findDatacollection"
body = elementA "ToolsForCollectionWebService" [("xmlns",
"findDataCollection")]
$ element "dataCollectionID" i
parser = StreamParser
. flaxTag ""
$ response
response = Response
<$> flaxContent "filePath"
main :: IO ()
main = do
-- Initial one-time preparations.
transport <- initTransportWithM defaultManagerSettings url pure pure
response <- getDataCollection transport dataCollectionID
print response
And When I run this I have this message
autoprocessing-exe: HttpExceptionRequest Request {
host = "xxx.xxx.xxx.xxx"
port = 80
secure = False
requestHeaders = [("Content-Type","text/xml;
charset=utf-8"),("SOAPAction","http://195.221.10.20/ispyb-ws/ispybWS/ToolsForCollectionWebService?wsdl")]
path = "/ispyb-ws/ispybWS/ToolsForCollectionWebService"
queryString = ""
method = "POST"
proxy = Nothing
rawBody = False
redirectCount = 10
responseTimeout = ResponseTimeoutMicro 15000000
requestVersion = HTTP/1.1
}
TlsNotSupported
I know that I do not want the https, the url is http and not https.
now I do not know how to modify this in order to deal with the authentification
and the cookiesJar.
It seems here that proxy is Nothing so I hope thqht it will use the
http[s]_proxy environment variable.
thanks for your help.
Frederic
------------------------------
Subject: Digest Footer
_______________________________________________
Beginners mailing list
[email protected]
http://mail.haskell.org/cgi-bin/mailman/listinfo/beginners
------------------------------
End of Beginners Digest, Vol 116, Issue 3
*****************************************