From: Richard Quadling on 15 Jun 2010 09:15 On 15 June 2010 12:44, John <john.zakaria(a)graphicano.com> wrote: > > > > Really i need help coz i am trying to solve this problem from 4 weeks and i can not so please help me > > I want to use a web service ( created in ASP.NEt ) in my web site using php coz i will use the result in other php pages. > the web service link is: http://196.218.16.133/onlinereservation/service.asmx?WSDL > > function name: HotelData under HotelsSearch > > Is there a tool for PHP or any other way to pass string for HotelData   and get an XML file containing the result? > > > > I tried to learn SOAP  in the manual  and I can not till now return data from this web service > > > > My Code is: > > > > <? > > header("Content-Type: text/plain"); > > $client = new SOAPClient('http://196.218.16.133/OnlineReservationTravelline/service.asmx?WSDL'); > > > > try { > >          $params->HotelData = '<HotelsParameters><CityID>388</CityID><UserName>admin</UserName><UserPassword>admin</UserPassword><DateFrom>6/12/2010</DateFrom><DateTo>6/13/2010</DateTo><NumberOfRooms>2</NumberOfRooms><Room><RoomSerial>1</RoomSerial><Adults>1</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>5</ChildAge></Child></Room><Room><RoomSerial>2</RoomSerial><Adults>2</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>8</ChildAge></Child><Child><ChildSerial>2</ChildSerial><ChildAge>5</ChildAge></Child></Room><CurrencyID>162</CurrencyID></HotelsParameters>'; > > > >          $result = $client->HotelsSearch($params); > >          //echo $result; > > } catch (SOAPFault $exception) { > > > >          print $exception; > >          print htmlspecialchars($client->__getLastRequest()); > > } > > > > var_dump($result); > > > > ?> > > > > Note: the string is ' <HotelsParameters><CityID>388</CityID><UserName>admin</UserName><UserPassword>admin</UserPassword><DateFrom>6/12/2010</DateFrom><DateTo>6/13/2010</DateTo><NumberOfRooms>2</NumberOfRooms><Room><RoomSerial>1</RoomSerial><Adults>1</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>5</ChildAge></Child></Room><Room><RoomSerial>2</RoomSerial><Adults>2</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>8</ChildAge></Child><Child><ChildSerial>2</ChildSerial><ChildAge>5</ChildAge></Child></Room><CurrencyID>162</CurrencyID></HotelsParameters>â > > > > > > John Zakaria Sabry > Senior Web Developer > > > > 3 El Nasr Street, EL Nozha EL Gedida, >  Heliopolis, Cairo, Egypt > > Phone: +202 262 00 755 - +2 012 551 5551 > > Fax: +202 262 00 755 > > Mobile: +2 018 131 91 89 > > john.zakaria(a)graphicano.com > > www.graphicano.com > > http://pastebin.com/cuXnT9Fb That contains some PHP classes which are based upon the WSDL file. The conversion is with the sourceforge wsdl2php project (with some mods). In YOUR code ... <?php // Include the classes which wrap the SOAP service for you. require_once 'service.php'; try { // Create a new Service (unforuntate name - maybe ReservationSystem or something - Service is VERY generic). $Service = new Service(); // Let's do a tour search. $TourSearchRequest = new TourSearch(); // Populate the TourSearchRequest. $TourSearchRequest->date = '2010/01/01'; // Run the search. $TourSearchResponse = $Service->TourSearch($TourSearchRequest); // Dump the response (expecting it to be of class TourSearchResponse. var_dump($TourSearchResponse); } catch(Exception $ex) { // Dump the exception, taking note of faultstring and faultcode as these are SOAP Server generated errors. var_dump($ex); } ?> But this is generating a SOAP exception on the server, so the client code won't help here. ["faultstring"]=>string(96) "Server was unable to process request. ---> Object reference not set to an instance of an object." ["faultcode"]=>string(11) "soap:Server" ["detail"]=>string(0) "" How are you building the WSDL file? By hand? If so, I would recommend learning about using DocBlocks and a tool to auto generate the WSDL file. I use a modified version of Zend's SOAP, WSDL and AutoDiscovery tools to build my WSDL files from my source code. I then use a modified sourceforge's wsdl2php project to convert the wsdl file to normal PHP classes which do all the wrapping of the SOAP comms for me and let's me use normal PHP coding as if all the services were local and not on a remote server. Richard. -- ----- Richard Quadling "Standing on the shoulders of some very clever giants!" EE : http://www.experts-exchange.com/M_248814.html EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 ZOPA : http://uk.zopa.com/member/RQuadling
From: Michael Shadle on 15 Jun 2010 12:07 Wso2 is also pretty awesome. I wish soap would just die and be replaced with rest and json. On Jun 15, 2010, at 6:15 AM, Richard Quadling <rquadling(a)gmail.com> wrote: > On 15 June 2010 12:44, John <john.zakaria(a)graphicano.com> wrote: >> >> >> >> Really i need help coz i am trying to solve this problem from 4 weeks and i can not so please help me >> >> I want to use a web service ( created in ASP.NEt ) in my web site using php coz i will use the result in other php pages. >> the web service link is: http://196.218.16.133/onlinereservation/service.asmx?WSDL >> >> function name: HotelData under HotelsSearch >> >> Is there a tool for PHP or any other way to pass string for HotelData and get an XML file containing the result? >> >> >> >> I tried to learn SOAP in the manual and I can not till now return data from this web service >> >> >> >> My Code is: >> >> >> >> <? >> >> header("Content-Type: text/plain"); >> >> $client = new SOAPClient('http://196.218.16.133/OnlineReservationTravelline/service.asmx?WSDL'); >> >> >> >> try { >> >> $params->HotelData = '<HotelsParameters><CityID>388</CityID><UserName>admin</UserName><UserPassword>admin</UserPassword><DateFrom>6/12/2010</DateFrom><DateTo>6/13/2010</DateTo><NumberOfRooms>2</NumberOfRooms><Room><RoomSerial>1</RoomSerial><Adults>1</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>5</ChildAge></Child></Room><Room><RoomSerial>2</RoomSerial><Adults>2</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>8</ChildAge></Child><Child><ChildSerial>2</ChildSerial><ChildAge>5</ChildAge></Child></Room><CurrencyID>162</CurrencyID></HotelsParameters>'; >> >> >> >> $result = $client->HotelsSearch($params); >> >> //echo $result; >> >> } catch (SOAPFault $exception) { >> >> >> >> print $exception; >> >> print htmlspecialchars($client->__getLastRequest()); >> >> } >> >> >> >> var_dump($result); >> >> >> >> ?> >> >> >> >> Note: the string is ' <HotelsParameters><CityID>388</CityID><UserName>admin</UserName><UserPassword>admin</UserPassword><DateFrom>6/12/2010</DateFrom><DateTo>6/13/2010</DateTo><NumberOfRooms>2</NumberOfRooms><Room><RoomSerial>1</RoomSerial><Adults>1</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>5</ChildAge></Child></Room><Room><RoomSerial>2</RoomSerial><Adults>2</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>8</ChildAge></Child><Child><ChildSerial>2</ChildSerial><ChildAge>5</ChildAge></Child></Room><CurrencyID>162</CurrencyID></HotelsParameters>â >> >> >> >> >> >> John Zakaria Sabry >> Senior Web Developer >> >> >> >> 3 El Nasr Street, EL Nozha EL Gedida, >> Heliopolis, Cairo, Egypt >> >> Phone: +202 262 00 755 - +2 012 551 5551 >> >> Fax: +202 262 00 755 >> >> Mobile: +2 018 131 91 89 >> >> john.zakaria(a)graphicano.com >> >> www.graphicano.com >> >> > > http://pastebin.com/cuXnT9Fb > > That contains some PHP classes which are based upon the WSDL file. The > conversion is with the sourceforge wsdl2php project (with some mods). > > In YOUR code ... > > <?php > // Include the classes which wrap the SOAP service for you. > require_once 'service.php'; > > try > { > // Create a new Service (unforuntate name - maybe ReservationSystem > or something - Service is VERY generic). > $Service = new Service(); > > // Let's do a tour search. > $TourSearchRequest = new TourSearch(); > > // Populate the TourSearchRequest. > $TourSearchRequest->date = '2010/01/01'; > > // Run the search. > $TourSearchResponse = $Service->TourSearch($TourSearchRequest); > > // Dump the response (expecting it to be of class TourSearchResponse. > var_dump($TourSearchResponse); > } > > catch(Exception $ex) > { > // Dump the exception, taking note of faultstring and faultcode as > these are SOAP Server generated errors. > var_dump($ex); > } > ?> > > But this is generating a SOAP exception on the server, so the client > code won't help here. > > ["faultstring"]=>string(96) "Server was unable to process request. > ---> Object reference not set to an instance of an object." > ["faultcode"]=>string(11) "soap:Server" > ["detail"]=>string(0) "" > > How are you building the WSDL file? By hand? If so, I would recommend > learning about using DocBlocks and a tool to auto generate the WSDL > file. > > I use a modified version of Zend's SOAP, WSDL and AutoDiscovery tools > to build my WSDL files from my source code. > > I then use a modified sourceforge's wsdl2php project to convert the > wsdl file to normal PHP classes which do all the wrapping of the SOAP > comms for me and let's me use normal PHP coding as if all the services > were local and not on a remote server. > > Richard. > > > > -- > ----- > Richard Quadling > "Standing on the shoulders of some very clever giants!" > EE : http://www.experts-exchange.com/M_248814.html > EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp > Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 > ZOPA : http://uk.zopa.com/member/RQuadling > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php >
From: Richard Quadling on 15 Jun 2010 13:14 On 15 June 2010 17:07, Michael Shadle <mike503(a)gmail.com> wrote: > Wso2 is also pretty awesome. > > I wish soap would just die and be replaced with rest and json. > > On Jun 15, 2010, at 6:15 AM, Richard Quadling <rquadling(a)gmail.com> wrote: > >> On 15 June 2010 12:44, John <john.zakaria(a)graphicano.com> wrote: >>> >>> >>> >>> Really i need help coz i am trying to solve this problem from 4 weeks and i can not so please help me >>> >>> I want to use a web service ( created in ASP.NEt ) in my web site using php coz i will use the result in other php pages. >>> the web service link is: http://196.218.16.133/onlinereservation/service.asmx?WSDL >>> >>> function name: HotelData  under HotelsSearch >>> >>> Is there a tool for PHP or any other way to pass string for HotelData   and get an XML file containing the result? >>> >>> >>> >>> I tried to learn SOAP  in the manual  and I can not till now return data from this web service >>> >>> >>> >>> My Code is: >>> >>> >>> >>> <? >>> >>> header("Content-Type: text/plain"); >>> >>> $client = new SOAPClient('http://196.218.16.133/OnlineReservationTravelline/service.asmx?WSDL'); >>> >>> >>> >>> try { >>> >>>      $params->HotelData = '<HotelsParameters><CityID>388</CityID><UserName>admin</UserName><UserPassword>admin</UserPassword><DateFrom>6/12/2010</DateFrom><DateTo>6/13/2010</DateTo><NumberOfRooms>2</NumberOfRooms><Room><RoomSerial>1</RoomSerial><Adults>1</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>5</ChildAge></Child></Room><Room><RoomSerial>2</RoomSerial><Adults>2</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>8</ChildAge></Child><Child><ChildSerial>2</ChildSerial><ChildAge>5</ChildAge></Child></Room><CurrencyID>162</CurrencyID></HotelsParameters>'; >>> >>> >>> >>>      $result = $client->HotelsSearch($params); >>> >>>      //echo $result; >>> >>> } catch (SOAPFault $exception) { >>> >>> >>> >>>      print $exception; >>> >>>      print htmlspecialchars($client->__getLastRequest()); >>> >>> } >>> >>> >>> >>> var_dump($result); >>> >>> >>> >>> ?> >>> >>> >>> >>> Note: the string is ' <HotelsParameters><CityID>388</CityID><UserName>admin</UserName><UserPassword>admin</UserPassword><DateFrom>6/12/2010</DateFrom><DateTo>6/13/2010</DateTo><NumberOfRooms>2</NumberOfRooms><Room><RoomSerial>1</RoomSerial><Adults>1</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>5</ChildAge></Child></Room><Room><RoomSerial>2</RoomSerial><Adults>2</Adults><Child><ChildSerial>1</ChildSerial><ChildAge>8</ChildAge></Child><Child><ChildSerial>2</ChildSerial><ChildAge>5</ChildAge></Child></Room><CurrencyID>162</CurrencyID></HotelsParameters>â >>> >>> >>> >>> >>> >>> John Zakaria Sabry >>> Senior Web Developer >>> >>> >>> >>> 3 El Nasr Street, EL Nozha EL Gedida, >>>  Heliopolis, Cairo, Egypt >>> >>> Phone: +202 262 00 755 - +2 012 551 5551 >>> >>> Fax: +202 262 00 755 >>> >>> Mobile: +2 018 131 91 89 >>> >>> john.zakaria(a)graphicano.com >>> >>> www.graphicano.com >>> >>> >> >> http://pastebin.com/cuXnT9Fb >> >> That contains some PHP classes which are based upon the WSDL file. The >> conversion is with the sourceforge wsdl2php project (with some mods). >> >> In YOUR code ... >> >> <?php >> // Include the classes which wrap the SOAP service for you. >> require_once 'service.php'; >> >> try >>   { >>   // Create a new Service (unforuntate name - maybe ReservationSystem >> or something - Service is VERY generic). >>   $Service = new Service(); >> >>   // Let's do a tour search. >>   $TourSearchRequest = new TourSearch(); >> >>   // Populate the TourSearchRequest. >>   $TourSearchRequest->date = '2010/01/01'; >> >>   // Run the search. >>   $TourSearchResponse = $Service->TourSearch($TourSearchRequest); >> >>   // Dump the response (expecting it to be of class TourSearchResponse. >>   var_dump($TourSearchResponse); >>   } >> >> catch(Exception $ex) >>   { >>   // Dump the exception, taking note of faultstring and faultcode as >> these are SOAP Server generated errors. >>   var_dump($ex); >>   } >> ?> >> >> But this is generating a SOAP exception on the server, so the client >> code won't help here. >> >> ["faultstring"]=>string(96) "Server was unable to process request. >> ---> Object reference not set to an instance of an object." >> ["faultcode"]=>string(11) "soap:Server" >> ["detail"]=>string(0) "" >> >> How are you building the WSDL file? By hand? If so, I would recommend >> learning about using DocBlocks and a tool to auto generate the WSDL >> file. >> >> I use a modified version of Zend's SOAP, WSDL and AutoDiscovery tools >> to build my WSDL files from my source code. >> >> I then use a modified sourceforge's wsdl2php project to convert the >> wsdl file to normal PHP classes which do all the wrapping of the SOAP >> comms for me and let's me use normal PHP coding as if all the services >> were local and not on a remote server. >> >> Richard. >> >> >> >> -- >> ----- >> Richard Quadling >> "Standing on the shoulders of some very clever giants!" >> EE : http://www.experts-exchange.com/M_248814.html >> EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp >> Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 >> ZOPA : http://uk.zopa.com/member/RQuadling >> >> -- >> PHP General Mailing List (http://www.php.net/) >> To unsubscribe, visit: http://www.php.net/unsub.php >> > REST is a concept, not a protocol (as I understand it), so you cannot just create a service and supply a contract file. You have to document the service in some other way and then the users have to write all the code. If there was a REST+DocBlock => wsdl_like_file then I could take the wsdl_like_file and produce my classes to access your service. I wouldn't need to care about the protocol. In fact, using the Zend framework as I've suggested, I've not written a single line of XML parsing, or header extraction or anything. Just talked to some local classes as if there was no distance between the client and the server. Client_class extends base_soap_client_class <=> base_soap_server_class extended by Server_Class SOAP has it's faults, but it is a standard of sorts and that certainly helps third parties know they are writing to a standard. But SOAP has more overhead admittedly and in some cases it may not be ideal.. -- ----- Richard Quadling "Standing on the shoulders of some very clever giants!" EE : http://www.experts-exchange.com/M_248814.html EE4Free : http://www.experts-exchange.com/becomeAnExpert.jsp Zend Certified Engineer : http://zend.com/zce.php?c=ZEND002498&r=213474731 ZOPA : http://uk.zopa.com/member/RQuadling
From: Michael Shadle on 15 Jun 2010 14:01 On Tue, Jun 15, 2010 at 10:14 AM, Richard Quadling <rquadling(a)gmail.com> wrote: > REST is a concept, not a protocol (as I understand it), so you cannot > just create a service and supply a contract file. You have to document > the service in some other way and then the users have to write all the > code. I know it's a concept, but using that concept as the "language" or "data transport" and the data format being JSON. I could try to map these to OSI model or TCP/IP model levels but I can't be bothered. I just find SOAP to be too bloated and an annoyance to work with. I mean, technically, a SOAP request is "RESTful" too since it can use POST or GET... but I don't like to consider it RESTful :)
|
Pages: 1 Prev: Delete File With Any File Extension Next: How could I mix popen() and pcntl_alarm() function ? |