Home  >  Article  >  Backend Development  >  PHP implements webservice (tested to be callable by C# and java)

PHP implements webservice (tested to be callable by C# and java)

不言
不言Original
2018-04-03 15:52:084425browse

This article shares with you the implementation of webservice in PHP (tested to be callable in C# and Java). Friends in need can refer to it

Using PHP to build a webservice in other languages ​​such as C# and JAVA The available Webservice methods are different from most webservices built with PHP described on the Internet. When the input parameters and output parameters of the interface are relatively complex, it is recommended to directly unify the input parameters and output parameters into XML string or Json string. What we focus on here is how to implement a webservice. As for the format of input and output parameters, we won’t go into details about how to operate XML strings. You can search a lot, but you should pay attention to the filtering and checking of parameters for XML and json. This article introduces webservice with wsdl files. The no-wsdl method is relatively simple and will not be introduced here.

Check and enable the soap extension

First you need to enable the soap extension, that is, php.ini Remove the semicolon before extension=php_soap.dll in the file and restart apache. Check whether soap is enabled in phpinfo. The specific how to operate is skipped here. Implementing webservice requires soap extension.

Create C# webservice in VS

The wsdl file generated by PHP's method of producing wsdl found on the Internet can only be used by PHP, so don't be fooled anymore. So here we use a curve to save the country to generate wsdl files. First build a webservice through C# to generate wsdl, and then you can use it with only slight changes.

1. Create a new project-> ASP.NET Web application to create a project;
PHP implements webservice (tested to be callable by C# and java)
2.b. Right-click the solution->Add ->Choose Web Service (ASMX) for the new item;
PHP implements webservice (tested to be callable by C# and java)
3. Write the interface. Note that [WebMethod] must be added before the function to be published in C#, which may also include To create some new classes:
PHP implements webservice (tested to be callable by C# and java)
4. After writing, press ctrl+F5 to run and the following will appear. After adding ?wsdl after the url, the wsdl will appear as shown below. , just save it as.
PHP implements webservice (tested to be callable by C# and java)
PHP implements webservice (tested to be callable by C# and java)##5. Change the location in in the generated WSDL file to that of PHP webservice Publishing address:

PHP implements webservice (tested to be callable by C# and java)6. PHP writing webservice interface:

PHP implements webservice (tested to be callable by C# and java)7. Publishing webservice:

<?php
/**
 * Created by PhpStorm.
 * User: Damon
 * Date: 2018/1/26
 * Time: 11:16
 */
//引入自动加载
require __DIR__ . &#39;/vendor/autoload.php&#39;;

$wsdlfile=&#39;MESWebService.wsdl&#39;;//wsdl文件路径

$webserver = new \SoapServer($wsdlfile);
$webserver->setClass(\Src\MESWebService::class);
$webserver->handle();
Note that the Web Service method can have at most one parameter when it is declared, but when calling the method, you must pass two parameters, value1 and value2. (This is very confusing. My understanding is that when calling this method, the system puts all parameters into an object and passes it over). The return value is also very special. Instead of returning $arry directly, you put it into an object and return it. The key value in the return value corresponds to the name in wsdl.

Use C# for call testing

1. New project->ASP.NET Web application creates a project, the same as before;

2. Right-click the reference under the project ->To add a service reference, click Advanced to jump out of service reference settings, click Add Web Reference in the lower right corner, and the following figure will appear:

PHP implements webservice (tested to be callable by C# and java)##3. Fill in the address of the published webservice service in the URL. If the following picture appears correctly after pressing Enter, modify the Web reference name according to your needs and click Add Reference:


PHP implements webservice (tested to be callable by C# and java)4. Then Right-click the project->Add->New item, select web form, and edit the contents of the .aspx.cs file.

PHP implements webservice (tested to be callable by C# and java)
##5.e. Finally, press ctrl+F5 to run and you can see the corresponding output, as shown in the figure below. Description The webservice implemented by php can be called correctly in C#. PHP implements webservice (tested to be callable by C# and java)

PHP implements webservice (tested to be callable by C# and java)

Related recommendations:


php implements querying mysql and caching to redis Method

php method to implement socket

php implements testing of var_dump and echo output multi-variables

The above is the detailed content of PHP implements webservice (tested to be callable by C# and java). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn