Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)

PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)

不言
不言Original
2018-04-03 15:52:084480Durchsuche

Dieser Artikel teilt Ihnen die Implementierung eines Webservices in PHP mit (getestet, um in C# und Java aufrufbar zu sein). Freunde in Not können sich darauf beziehen

Verwenden Sie PHP, um einen Webservice in anderen Sprachen zu erstellen B. C# und JAVA. Die verfügbaren Webservice-Methoden unterscheiden sich von den meisten im Internet beschriebenen Webservices, die mit PHP erstellt wurden. Wenn die Eingabe- und Ausgabeparameter der Schnittstelle relativ komplex sind, wird empfohlen, die Eingabe- und Ausgabeparameter direkt in einer XML-Zeichenfolge oder Json-Zeichenfolge zu vereinheitlichen. Der Schwerpunkt liegt hier auf der Implementierung eines Webservices und der Funktionsweise von XML-Strings. Sie können viel suchen, sollten jedoch auf die Filterung und Überprüfung achten Parameter für XML und JSON. In diesem Artikel wird der Webservice mit der WSDL-Datei vorgestellt. Die No-WSDL-Methode ist relativ einfach und wird hier nicht vorgestellt.

Überprüfen und aktivieren Sie die Soap-Erweiterung.

Zuerst müssen Sie die Soap-Erweiterung aktivieren. Das heißt, php.ini Entfernen Sie das Semikolon vor extension=php_soap.dll in der Datei und starten Sie Apache neu. Überprüfen Sie, ob Soap in PHPInfo aktiviert ist. Die spezifische Vorgehensweise wird hier übersprungen. Für die Implementierung des Webservice ist eine SOAP-Erweiterung erforderlich.

Erstellen Sie einen C#-Webservice in VS

Die WSDL-Datei, die durch die PHP-Methode zur Erstellung von WSDL online generiert wurde, kann nur von PHP verwendet werden, also lassen Sie sich nicht länger täuschen. Hier verwenden wir also eine Kurve, um das Land zu speichern und WSDL-Dateien zu generieren. Erstellen Sie zunächst einen Webservice über C#, um WSDL zu generieren, und verwenden Sie ihn dann mit nur geringfügigen Änderungen.

1. Neues Projekt-> ASP.NET-Webanwendung erstellt ein Projekt;
PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)
2.b ->Wählen Sie Web Service (ASMX) für das neue Element.
PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)
3. Beachten Sie, dass [WebMethod] vor der zu veröffentlichenden Funktion hinzugefügt werden muss C#, das auch einige neue Klassen enthalten kann:
PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)
4. Drücken Sie nach dem Schreiben Strg+F5, um Folgendes anzuzeigen. Nach dem Hinzufügen von ?wsdl URL, die WSDL wird wie unten gezeigt angezeigt, speichern Sie sie einfach unter.
PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)
PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)5. Ändern Sie den Speicherort in in den von PHP Webservice Publishing Adresse:

PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)6. PHP-Schreib-Webservice-Schnittstelle:

PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)7
Beachten Sie, dass die Webdienstmethode bei der Deklaration höchstens einen Parameter haben kann. Beim Aufruf der Methode müssen Sie jedoch zwei Parameter übergeben, Wert1 und Wert2. (Das ist sehr verwirrend. Ich verstehe, dass das System beim Aufrufen dieser Methode alle Parameter in ein Objekt einfügt und es übergibt.) Auch der Rückgabewert ist etwas ganz Besonderes, anstatt $arry direkt zurückzugeben, fügen Sie ihn in ein Objekt ein und geben ihn zurück. Der Schlüsselwert im Rückgabewert entspricht dem Namen in wsdl.

<?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();
Verwenden Sie C# zum Testen von Aufrufen

1. Neues Projekt->ASP.NET-Webanwendung erstellt ein Projekt, genau wie zuvor;

2. Klicken Sie mit der rechten Maustaste auf die Referenz unter dem Projekt ->Um einen Dienstverweis hinzuzufügen, klicken Sie auf die erweiterten Popup-Dienstverweiseinstellungen und klicken Sie unten rechts auf Webverweis hinzufügen, wie unten gezeigt:



PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)3. Geben Sie die Adresse des veröffentlichten Webservice-Dienstes in die URL ein. Wenn das folgende Bild nach Drücken der Eingabetaste korrekt angezeigt wird, ändern Sie den Web-Referenznamen entsprechend Ihren Anforderungen und klicken Sie auf Referenz hinzufügen:


4. Klicken Sie dann mit der rechten Maustaste auf das Projekt->Hinzufügen->Neu-Element, wählen Sie das Webformular aus und bearbeiten Sie den Inhalt der .aspx.cs-Datei. PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)

PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)
5.e. Drücken Sie abschließend Strg+F5, um die entsprechende Ausgabe anzuzeigen, wie in der Abbildung gezeigt unten, Beschreibung Der von PHP implementierte Webservice kann in C# korrekt aufgerufen werden. PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)

PHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet)

Verwandte Empfehlungen:


php implementiert die Abfrage von MySQL und das Caching in Redis Methode

PHP-Methode zum Implementieren von Socket

php implementiert das Testen von var_dump- und echo-Ausgabe-Multivariablen

Das obige ist der detaillierte Inhalt vonPHP implementiert einen Webservice (auf Aufrufbarkeit durch C# und Java getestet). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn