By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,492 Members | 3,174 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,492 IT Pros & Developers. It's quick & easy.

SOAP - Beginner Desperately looking for Help

P: n/a
Hi All,

I am a relative beginner to Python and am looking for help with sending and
XML message and getting back a return file. The server is:

https://node.deq.state.or.us/node/node.asmx

I have have successfully sent and recieved using the PING, AUTHENTICATE
(send in username and password and return a secuirity token), SOLICIT(send
in information for a query and get a number indicating the query),
GETSTATUS(status of query) using SOAPpy. I am using Python 2.4 on a Window
XP machine.

What I want to do now is download the result of my query using the DOWNLOAD
method. However, I cann't figure out how to do this. I have tried SOAPpy
and httplib and I cann't send the correct XML outgoing message. Any help
with this would be greatly appreciated. Following is the needed outgoing
XML file and my successful SOAPpy code.

Thank you,

Rodney (ro************@hotmail.com)

POST /node/node.asmx HTTP/1.1
Host: node.deq.state.or.us
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: ""

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://www.ExchangeNetwork.net/schema/v1.0/node.wsdl"
xmlns:types="http://www.ExchangeNetwork.net/schema/v1.0/node.wsdl/encodedTypes"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<q1:Download
xmlns:q1="http://www.ExchangeNetwork.net/schema/v1.0/node.xsd">
<securityToken xsi:type="xsd:string">string</securityToken>
<transactionId xsi:type="xsd:string">string</transactionId>
<dataflow xsi:type="xsd:string">string</dataflow>
<documents href="#id1" />
</q1:Download>
<soapenc:Array id="id1"
xmlns:q1="http://www.ExchangeNetwork.net/schema/v1.0/node.xsd"
soapenc:arrayType="q1:NodeDocument[2]">
<Item href="#id2" />
<Item href="#id3" />
</soapenc:Array>
<q3:NodeDocument id="id2" xsi:type="q3:NodeDocument"
xmlns:q3="http://www.ExchangeNetwork.net/schema/v1.0/node.xsd">
<name xsi:type="xsd:string">string</name>
<type xsi:type="xsd:string">string</type>
</q3:NodeDocument>
<q4:NodeDocument id="id3" xsi:type="q4:NodeDocument"
xmlns:q4="http://www.ExchangeNetwork.net/schema/v1.0/node.xsd">
<name xsi:type="xsd:string">string</name>
<type xsi:type="xsd:string">string</type>
</q4:NodeDocument>
</soap:Body>
</soap:Envelope>
Below is an example of the code that does work.

urlNode = 'https://node.deq.state.or.us/node/node.asmx?op=NodePing'
namespace = 'http://www.ExchangeNetwork.net/schema/v1.0/node.xsd'
server = SOAPProxy(urlNode, namespace)
PING = server.NodePing('Ping')

urlAuth = 'https://node.deq.state.or.us/node/node.asmx?op=Authenticate'
# AUTHENTICATE - Returns a variable with the token
server = SOAPProxy(urlAuth, namespace)
token = server.Authenticate(userId='MYUSERNAME', credential='MYPASSWORD',
authenticationMethod='Invoke')
print token

urlSolicit = 'https://node.deq.state.or.us/node/node.asmx?op=Solicit'
server = SOAPProxy(urlSolicit, namespace)
rowID='0'
maxRows='1000'
service='GetAirMeasurements'
fieldEventStartDate='2005-01-01'
fieldEventEndDate='2005-02-01'
analyteName='PM10'
parameters=[rowID,maxRows,'','','','','','','','','','','','', '','','',fieldEventStartDate,fieldEventEndDate,'', analyteName]
transID = server.Solicit(securityToken = token, returnURL = '', request =
'GetAirMeasurements', parameters = parameters)
print transID

Nov 27 '05 #1
Share this Question
Share on Google+
3 Replies


P: n/a
Rodney Garland wrote:
Hi All,

I am a relative beginner to Python and am looking for help with sending and
XML message and getting back a return file. The server is:

https://node.deq.state.or.us/node/node.asmx

I have have successfully sent and recieved using the PING, AUTHENTICATE
(send in username and password and return a secuirity token), SOLICIT(send
in information for a query and get a number indicating the query),
GETSTATUS(status of query) using SOAPpy. I am using Python 2.4 on a Window
XP machine.

What I want to do now is download the result of my query using the DOWNLOAD
method. However, I cann't figure out how to do this. I have tried SOAPpy
and httplib and I cann't send the correct XML outgoing message. Any help
with this would be greatly appreciated. Following is the needed outgoing
XML file and my successful SOAPpy code.


Use wsdl2py(.py). It come with e.g. ZSI, but SOAPpy also use wsdltools -
which should include it. There is a WSDL given at the site, passing it
to wsdl2py results in type-definitions. Use these as arguments to
download - hopefully, that helps. I wanted to attach these - however,
taht didn't work for NNTP, so I mail them to you.

This whole mess is another reason to depsise SOAP and stick to xmlrpc or
better CORBA, btw.

Regards,

Diez
Nov 27 '05 #2

P: n/a
> I wanted to attach these - however,
taht didn't work for NNTP, so I mail them to you.


Didn't work - my mail server won't let me send these to you. So you're
on your own here. Shouldn't be too hard :)

Diez
Nov 27 '05 #3

P: n/a
Thanks :-)
"Diez B. Roggisch" <de***@nospam.web.de> wrote in message
news:3u*************@uni-berlin.de...
I wanted to attach these - however, taht didn't work for NNTP, so I mail
them to you.


Didn't work - my mail server won't let me send these to you. So you're on
your own here. Shouldn't be too hard :)

Diez

Nov 27 '05 #4

This discussion thread is closed

Replies have been disabled for this discussion.