jimatcaledonia Posted August 30, 2014 Share Posted August 30, 2014 Hi all, I am a Junior Developer, I have taken over someone's implementation of a web service and am struggling. They used python to access the methods. I can access the web service via Python and connect it to our databases, but it is really slow. I believe that PHP would make it faster, but I am not able to make the right connections. Any help would be really appreciated. I have included some code snippets below, Thank you, Jim ###################################################################### Python ###################################################################### #!/usr/bin/python ###################################################################### # Module imports ###################################################################### from suds.client import Client from suds.wsse import * from xml.dom import minidom import MySQLdb ###################################################################### # Address Interface. ###################################################################### class Address(object): def __init__(self, ttl=600): # Constants. self._USERNAME = 'username' self._PASSWORD = 'password' self._address_search_url = 'https://jim.svc?wsdl' # SOAP security setup. self._security = Security() self._token = UsernameToken(self._USERNAME, self._PASSWORD) self._security.tokens.append(self._token) #print 'Starting Address Search.' self._address_search_client = Client(self._address_search_url) self._address_search_client.set_options(wsse=self._security) # Addresses. ######################################################## def address_search_by_postcode(self, postcode): RegsRegionType = self._address_search_client.factory.create('ns1:RegsRegionType') regs_region = RegsRegionType.Scotland address_data = self._address_search_client.service.SearchAddressByPostCode(regs_region, RegisterType.Domestic, postcode, '') addrs = [] for addr in address_data.keys.string: address_dom = minidom.parseString(addr.encode('utf-8')) ob = {} #Get addr details addrs.append(ob) return addrs ###################################################################### def get_data(d, t): try: return d.getElementsByTagName(t)[0].childNodes[0].data except: return None ###################################################################### PHP ###################################################################### <?php error_reporting(E_ALL); ini_set('display_errors', 'on'); $username = "username"; $password = 'password'; $wsdl = "https://jim.svc?wsdl"; // SOAP security setup $options = array( 'login' => $username, 'password' => $password, ); /////////////////////////////////////////////////////////////////////////////// Connect ////////////////////////////////////////////////////////////////////////////// $client = new SoapClient($wsdl, $options); ////////////////////////////////////////////////////////////////////////////// define wsse security ////////////////////////////////////////////////////////////////////////////// $securityNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"; $headerContent = "<o:Security xmlns:o=\"$securityNamespace\"> <o:UsernameToken> <o:Username>USERNAME</o:Username> <o:Password>PASSWORD</o:Password> </o:UsernameToken> </o:Security>"; $headerVar = new SoapVar($headerContent, XSD_ANYXML, null, null, null); $header = new SoapHeader($securityNamespace, 'o:Security', $headerVar); ////////////////////////////////////////////////////////////////////////////// Authenticate ////////////////////////////////////////////////////////////////////////////// $client->__setSoapHeaders(array($header)); var_dump($client->__getFunctions()); try{ $result = $client->SearchAddressByPostCode($regsRegion, $registerType, $postCode, " "); print_r($result); }catch (SoapFault $exception){ var_dump($exception); } print('done'); ?> ////////////////////////////////////////////////////////////////////////////// END ////////////////////////////////////////////////////////////////////////////// Hope someone can help and point me in the right direction Thanks JIm Quote Link to comment https://forums.phpfreaks.com/topic/290743-php-wsdl-help-needed/ Share on other sites More sharing options...
PravinS Posted August 30, 2014 Share Posted August 30, 2014 for PHP SOAP you can try NuSOAP Toolkit Quote Link to comment https://forums.phpfreaks.com/topic/290743-php-wsdl-help-needed/#findComment-1489360 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.