#!/usr/bin/env python
ident = '$Id: newsTest.py,v 1.4 2003/05/21 14:52:37 warnes Exp $'
import os, re
import sys
sys.path.insert(1, "..")
from SOAPpy import SOAPProxy
# Check for a web proxy definition in environment
try:
proxy_url=os.environ['http_proxy']
phost, pport = re.search('http://([^:]+):([0-9]+)', proxy_url).group(1,2)
proxy = "%s:%s" % (phost, pport)
except:
proxy = None
SoapEndpointURL = 'http://www22.brinkster.com/prasads/BreakingNewsService.asmx?WSDL'
MethodNamespaceURI = 'http://tempuri.org/'
# Three ways to do namespaces, force it at the server level
server = SOAPProxy(SoapEndpointURL, namespace = MethodNamespaceURI,
soapaction='http://tempuri.org/GetCNNNews', encoding = None,
http_proxy=proxy)
print "[server level CNN News call]"
print server.GetCNNNews()
# Do it inline ala SOAP::LITE, also specify the actually ns (namespace) and
# sa (soapaction)
server = SOAPProxy(SoapEndpointURL, encoding = None)
print "[inline CNNNews call]"
print server._ns('ns1',
MethodNamespaceURI)._sa('http://tempuri.org/GetCNNNews').GetCNNNews()
# Create an instance of your server with specific namespace and then use
# inline soapactions for each call
dq = server._ns(MethodNamespaceURI)
print "[namespaced CNNNews call]"
print dq._sa('http://tempuri.org/GetCNNNews').GetCNNNews()
print "[namespaced CBSNews call]"
print dq._sa('http://tempuri.org/GetCBSNews').GetCBSNews()
|