Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.76 KB | None | 0 0
  1. <?php
  2.  
  3. class NewOperation {
  4. public function NewOperation()
  5. {
  6.  
  7. }
  8. }
  9.  
  10. ini_set("soap.wsdl_cache_enabled", "0");
  11. $server = new SOAPServer('http://localhost:9080/soap-websiteservice- wsdl/CalculatorService.wsdl', array(
  12. 'soap_version' => SOAP_1_2,
  13. 'style' => SOAP_RPC,
  14. 'use' => SOAP_LITERAL
  15. ));
  16. $server->setClass('NewOperation');
  17. $server->handle();
  18.  
  19. <?php
  20. // client.php
  21. $options = array(
  22. 'trace' => true
  23. );
  24. $client = new SOAPClient('http://localhost:9080/soap-websiteservice- wsdl/server.php?wsdl', $options);
  25. var_dump($client->NewOperation());
  26.  
  27. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  28. <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://localhost:9080/soap-websiteservice-wsdl/CalculatorService/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="CalculatorService" targetNamespace="http://localhost:9080/soap-websiteservice- wsdl/CalculatorService/">
  29. <wsdl:types>
  30. <xsd:schema targetNamespace="http://localhost:9080/soap-websiteservice- wsdl/CalculatorService/">
  31. <xsd:element name="add" type="xsd:string">
  32.  
  33. </xsd:element>
  34. <xsd:element name="addResponse">
  35. <xsd:complexType>
  36. <xsd:sequence>
  37. <xsd:element name="addResponse" type="tns:addResponseType" />
  38. </xsd:sequence>
  39. </xsd:complexType>
  40. </xsd:element>
  41.  
  42. <xsd:complexType name="addRequestType">
  43. <xsd:sequence>
  44. <xsd:element name="num1" type="xsd:int"></xsd:element>
  45. <xsd:element name="num2" type="xsd:int"></xsd:element>
  46. </xsd:sequence>
  47. </xsd:complexType>
  48.  
  49. <xsd:complexType name="addResponseType">
  50. <xsd:sequence>
  51. <xsd:element name="result" type="xsd:string"></xsd:element>
  52. </xsd:sequence>
  53. </xsd:complexType>
  54. <xsd:element name="in" type="xsd:string"></xsd:element>
  55. <xsd:element name="NewOperationResponse">
  56. <xsd:complexType>
  57. <xsd:sequence>
  58. <xsd:element name="out" type="xsd:string"></xsd:element>
  59. </xsd:sequence>
  60. </xsd:complexType>
  61. </xsd:element>
  62. </xsd:schema>
  63. </wsdl:types>
  64. <wsdl:message name="addRequest">
  65. <wsdl:part element="tns:add" name="parameters"/>
  66. </wsdl:message>
  67. <wsdl:message name="addResponse">
  68. <wsdl:part element="tns:addResponse" name="parameters"/>
  69. </wsdl:message>
  70. <wsdl:message name="NewOperationRequest">
  71. <wsdl:part name="NewOperationRequest" element="tns:in"></wsdl:part>
  72. </wsdl:message>
  73. <wsdl:message name="NewOperationResponse">
  74. <wsdl:part name="parameters" element="tns:NewOperationResponse"> </wsdl:part>
  75. </wsdl:message>
  76. <wsdl:portType name="CalculatorService">
  77.  
  78. <wsdl:operation name="NewOperation">
  79. <wsdl:input message="tns:NewOperationRequest"></wsdl:input>
  80. <wsdl:output message="tns:NewOperationResponse"></wsdl:output>
  81. </wsdl:operation>
  82. </wsdl:portType>
  83. <wsdl:binding name="CalculatorServiceSOAP"
  84. type="tns:CalculatorService">
  85. <soap:binding style="document"
  86. transport="http://schemas.xmlsoap.org/soap/http" />
  87. <wsdl:operation name="NewOperation">
  88. <soap:operation
  89. soapAction="http://localhost:9080/soap-websiteservice- wsdl/CalculatorService/NewOperation" />
  90. <wsdl:input>
  91. <soap:body use="literal" />
  92. </wsdl:input>
  93. <wsdl:output>
  94. <soap:body use="literal" />
  95. </wsdl:output>
  96. </wsdl:operation>
  97. </wsdl:binding>
  98. <wsdl:service name="CalculatorService">
  99. <wsdl:port binding="tns:CalculatorServiceSOAP" name="CalculatorServiceSOAP">
  100. <soap:address location="http://localhost:9080/soap-websiteservice-wsdl/"/>
  101. </wsdl:port>
  102. </wsdl:service>
  103. </wsdl:definitions>
  104.  
  105. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  106. <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://localhost:9080/soap-websiteservice-wsdl/Calculator" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Calculator" targetNamespace="http://localhost:9080/soap-websiteservice-wsdl/Calculator">
  107. <wsdl:types>
  108. <xsd:schema targetNamespace="http://localhost:9080/soap-websiteservice-wsdl/Calculator">
  109. <xsd:element name="Average">
  110. <xsd:complexType>
  111. <xsd:sequence>
  112. <xsd:element name="num1" type="xsd:int" />
  113. <xsd:element name="num2" type="xsd:int"></xsd:element>
  114. </xsd:sequence>
  115. </xsd:complexType>
  116. </xsd:element>
  117. <xsd:element name="AverageResponse">
  118. <xsd:complexType>
  119. <xsd:sequence>
  120. <xsd:element name="Result" type="xsd:string"/>
  121. </xsd:sequence>
  122. </xsd:complexType>
  123. </xsd:element>
  124.  
  125. <xsd:complexType name="AverageRequestType">
  126. <xsd:sequence>
  127. <xsd:element name="num1" type="xsd:int"></xsd:element>
  128. <xsd:element name="num2" type="xsd:int"></xsd:element>
  129. </xsd:sequence>
  130. </xsd:complexType>
  131. </xsd:schema>
  132. </wsdl:types>
  133. <wsdl:message name="AverageRequest">
  134. <wsdl:part element="tns:Average" name="parameters"/>
  135. </wsdl:message>
  136. <wsdl:message name="AverageResponse">
  137. <wsdl:part element="tns:AverageResponse" name="parameters"/>
  138. </wsdl:message>
  139. <wsdl:portType name="Calculator">
  140. <wsdl:operation name="Average">
  141. <wsdl:input message="tns:AverageRequest"/>
  142. <wsdl:output message="tns:AverageResponse"/>
  143. </wsdl:operation>
  144. </wsdl:portType>
  145. <wsdl:binding name="CalculatorSOAP" type="tns:Calculator">
  146. <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  147. <wsdl:operation name="Average">
  148. <soap:operation soapAction="http://localhost:9080/soap-websiteservice-wsdl/Calculator/NewOperation"/>
  149. <wsdl:input>
  150. <soap:body use="literal"/>
  151. </wsdl:input>
  152. <wsdl:output>
  153. <soap:body use="literal"/>
  154. </wsdl:output>
  155. </wsdl:operation>
  156. </wsdl:binding>
  157. <wsdl:service name="Calculator">
  158. <wsdl:port binding="tns:CalculatorSOAP" name="CalculatorSOAP">
  159. <soap:address location="http://localhost:9080/soap-websiteservice-wsdl/server.php"/>
  160. </wsdl:port>
  161. </wsdl:service>
  162. </wsdl:definitions>
  163.  
  164. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  165. <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://localhost:9080/soap-websiteservice-wsdl/Calculator" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Calculator" targetNamespace="http://localhost:9080/soap-websiteservice-wsdl/Calculator">
  166. <wsdl:types>
  167. <xsd:schema targetNamespace="http://localhost:9080/soap-websiteservice-wsdl/Calculator">
  168. <xsd:element name="Average">
  169. <xsd:complexType>
  170. <xsd:sequence>
  171. <xsd:element name="num1" type="xsd:int" />
  172. <xsd:element name="num2" type="xsd:int"></xsd:element>
  173. </xsd:sequence>
  174. </xsd:complexType>
  175. </xsd:element>
  176. <xsd:element name="AverageResponse">
  177. <xsd:complexType>
  178. <xsd:sequence>
  179. <xsd:element name="Result" type="xsd:string"/>
  180. </xsd:sequence>
  181. </xsd:complexType>
  182. </xsd:element>
  183.  
  184. <xsd:complexType name="AverageRequestType">
  185. <xsd:sequence>
  186. <xsd:element name="num1" type="xsd:int"></xsd:element>
  187. <xsd:element name="num2" type="xsd:int"></xsd:element>
  188. </xsd:sequence>
  189. </xsd:complexType>
  190. </xsd:schema>
  191. </wsdl:types>
  192. <wsdl:message name="AverageRequest">
  193. <wsdl:part element="tns:Average" name="parameters"/>
  194. </wsdl:message>
  195. <wsdl:message name="AverageResponse">
  196. <wsdl:part element="tns:AverageResponse" name="parameters"/>
  197. </wsdl:message>
  198. <wsdl:portType name="Calculator">
  199. <wsdl:operation name="Average">
  200. <wsdl:input message="tns:AverageRequest"/>
  201. <wsdl:output message="tns:AverageResponse"/>
  202. </wsdl:operation>
  203. </wsdl:portType>
  204. <wsdl:binding name="CalculatorSOAP" type="tns:Calculator">
  205. <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  206. <wsdl:operation name="Average">
  207. <soap:operation soapAction="http://localhost:9080/soap-websiteservice-wsdl/Calculator/NewOperation"/>
  208. <wsdl:input>
  209. <soap:body use="literal"/>
  210. </wsdl:input>
  211. <wsdl:output>
  212. <soap:body use="literal"/>
  213. </wsdl:output>
  214. </wsdl:operation>
  215. </wsdl:binding>
  216. <wsdl:service name="Calculator">
  217. <wsdl:port binding="tns:CalculatorSOAP" name="CalculatorSOAP">
  218. <soap:address location="http://localhost:9080/soap-websiteservice-wsdl/server.php"/>
  219. </wsdl:port>
  220. </wsdl:service>
  221. </wsdl:definitions>
  222.  
  223. <?xml version="1.0" encoding="UTF-8" standalone="no"?>
  224. <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://localhost:9080/soap-websiteservice-wsdl/Calculator" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="Calculator" targetNamespace="http://localhost:9080/soap-websiteservice-wsdl/Calculator">
  225. <wsdl:types>
  226. <xsd:schema targetNamespace="http://localhost:9080/soap-websiteservice-wsdl/Calculator">
  227. <xsd:element name="Average">
  228. <xsd:complexType>
  229. <xsd:sequence>
  230. <xsd:element name="num1" type="xsd:int" />
  231. <xsd:element name="num2" type="xsd:int"></xsd:element>
  232. </xsd:sequence>
  233. </xsd:complexType>
  234. </xsd:element>
  235. <xsd:element name="AverageResponse">
  236. <xsd:complexType>
  237. <xsd:sequence>
  238. <xsd:element name="Result" type="xsd:string"/>
  239. </xsd:sequence>
  240. </xsd:complexType>
  241. </xsd:element>
  242.  
  243. <xsd:complexType name="AverageRequestType">
  244. <xsd:sequence>
  245. <xsd:element name="num1" type="xsd:int"></xsd:element>
  246. <xsd:element name="num2" type="xsd:int"></xsd:element>
  247. </xsd:sequence>
  248. </xsd:complexType>
  249. </xsd:schema>
  250. </wsdl:types>
  251. <wsdl:message name="AverageRequest">
  252. <wsdl:part element="tns:Average" name="parameters"/>
  253. </wsdl:message>
  254. <wsdl:message name="AverageResponse">
  255. <wsdl:part element="tns:AverageResponse" name="parameters"/>
  256. </wsdl:message>
  257. <wsdl:portType name="Calculator">
  258. <wsdl:operation name="Average">
  259. <wsdl:input message="tns:AverageRequest"/>
  260. <wsdl:output message="tns:AverageResponse"/>
  261. </wsdl:operation>
  262. </wsdl:portType>
  263. <wsdl:binding name="CalculatorSOAP" type="tns:Calculator">
  264. <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
  265. <wsdl:operation name="Average">
  266. <soap:operation soapAction="http://localhost:9080/soap-websiteservice-wsdl/Calculator/NewOperation"/>
  267. <wsdl:input>
  268. <soap:body use="literal"/>
  269. </wsdl:input>
  270. <wsdl:output>
  271. <soap:body use="literal"/>
  272. </wsdl:output>
  273. </wsdl:operation>
  274. </wsdl:binding>
  275. <wsdl:service name="Calculator">
  276. <wsdl:port binding="tns:CalculatorSOAP" name="CalculatorSOAP">
  277. <soap:address location="http://localhost:9080/soap-websiteservice-wsdl/server.php"/>
  278. </wsdl:port>
  279. </wsdl:service>
  280. </wsdl:definitions>
  281.  
  282. <?php
  283. ini_set("soap.wsdl_cache_enabled", "0");
  284.  
  285. class Server{
  286.  
  287. protected $class_name = '';
  288.  
  289. public function __construct($class_name)
  290. {
  291. $this->class_name = $class_name;
  292. }
  293. public function AuthHeader($Header)
  294. {
  295. //if($Header->username == 'foo' && $Header->password == 'bar')
  296. // $this->authenticated = true;
  297.  
  298. }
  299.  
  300. public function log($method_name,$data)
  301. {
  302. $filename = 'log.txt';
  303. $handle = fopen($filename, 'a+');
  304. fwrite($handle, date("l dS of F Y h:i:s A").' - '.$_SERVER['REMOTE_ADDR']."rn".$method_name."rn".print_r($data,true));
  305. fclose($handle);
  306. }
  307.  
  308. public function __call($method_name, $parameters)
  309. {
  310. $this->log($method_name,$parameters); // log
  311. //if($arguments[0]!=AUTH) return 'Authorization required'; // auth check
  312. if(!method_exists($this->class_name, $method_name )) return 'Method '.$method_name.' not found'; // methot exist check
  313. return call_user_func_array(array($this->class_name, $method_name ), $parameters); //call method
  314. }
  315. }
  316.  
  317.  
  318. class Calculator {
  319. public function Average ($parameters)
  320. {
  321. $num1 = $parameters->num1;
  322. $num2 = $parameters->num2;
  323.  
  324. return self::AverageResponse(($num1 + $num2) / 2);
  325. }
  326.  
  327. public function AverageResponse ($message)
  328. {
  329. return ['Result' => $message];
  330. }
  331. }
  332.  
  333. class in {
  334.  
  335. }
  336.  
  337. $Service = new Server('Calculator');
  338. $classmap=[
  339. 'in' => 'in'
  340. ];
  341. $server = new SOAPServer('http://localhost:9080/soap-websiteservice-wsdl/Calculator.wsdl', array(
  342. 'soap_version' => SOAP_1_2,
  343. 'style' => SOAP_RPC,
  344. 'use' => SOAP_LITERAL,
  345. 'classmap'=>$classmap
  346. ));
  347. $server->setObject($Service);
  348. //$server->setClass('Calculator');
  349. $server->handle();
  350.  
  351. <?php
  352. // client.php
  353. $options = array(
  354. 'trace' => true
  355. );
  356. $client = new SOAPClient('http://localhost:9080/soap-websiteservice-wsdl/server.php?wsdl', $options);
  357. var_dump($client->Average(['num1' => 10, 'num2' => 6])->Result);
  358.  
  359. using System;
  360. using System.Collections.Generic;
  361. using System.ComponentModel;
  362. using System.Data;
  363. using System.Drawing;
  364. using System.Linq;
  365. using System.Text;
  366. using System.Threading.Tasks;
  367. using System.Windows.Forms;
  368.  
  369. namespace WindowsFormsApplication1
  370. {
  371. public partial class Form1 : Form
  372. {
  373. public Form1()
  374. {
  375. InitializeComponent();
  376. }
  377.  
  378. private void button1_Click(object sender, EventArgs e)
  379. {
  380. localhost.Calculator client = new localhost.Calculator();
  381.  
  382. string returnString;
  383.  
  384. returnString = client.Average(10,8);
  385. label1.Text = returnString;
  386. }
  387. }
  388. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement